{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 模块导入"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:31.750927Z",
     "start_time": "2019-11-03T13:04:31.719700Z"
    }
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import re\n",
    "from pyecharts import options as opts\n",
    "from pyecharts.charts import Bar\n",
    "from pyecharts.render import make_snapshot\n",
    "from snapshot_selenium import snapshot\n",
    "from pyecharts.charts import Geo\n",
    "from pyecharts.globals import ChartType, SymbolType\n",
    "from pyecharts.charts import Map \n",
    "from matplotlib.font_manager import FontProperties\n",
    "myfont=FontProperties(fname=r'C:\\Windows\\Fonts\\simhei.ttf',size=14)\n",
    "sns.set(font=myfont.get_name())\n",
    "sns.set()#切换到seaborn的默认运行配置\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "heading_collapsed": true
   },
   "source": [
    "# 数据处理"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# #数据导入与总览"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:31.985296Z",
     "start_time": "2019-11-03T13:04:31.750927Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 28452 entries, 0 to 28451\n",
      "Data columns (total 16 columns):\n",
      "id                                28452 non-null int64\n",
      "name                              28451 non-null object\n",
      "host_id                           28452 non-null int64\n",
      "host_name                         28452 non-null object\n",
      "neighbourhood_group               0 non-null float64\n",
      "neighbourhood                     28452 non-null object\n",
      "latitude                          28452 non-null float64\n",
      "longitude                         28452 non-null float64\n",
      "room_type                         28452 non-null object\n",
      "price                             28452 non-null int64\n",
      "minimum_nights                    28452 non-null int64\n",
      "number_of_reviews                 28452 non-null int64\n",
      "last_review                       17294 non-null object\n",
      "reviews_per_month                 17294 non-null float64\n",
      "calculated_host_listings_count    28452 non-null int64\n",
      "availability_365                  28452 non-null int64\n",
      "dtypes: float64(4), int64(7), object(5)\n",
      "memory usage: 3.5+ MB\n"
     ]
    }
   ],
   "source": [
    "data=pd.read_csv(\"listings.csv\")\n",
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.032167Z",
     "start_time": "2019-11-03T13:04:31.985296Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>name</th>\n",
       "      <th>host_id</th>\n",
       "      <th>host_name</th>\n",
       "      <th>neighbourhood_group</th>\n",
       "      <th>neighbourhood</th>\n",
       "      <th>latitude</th>\n",
       "      <th>longitude</th>\n",
       "      <th>room_type</th>\n",
       "      <th>price</th>\n",
       "      <th>minimum_nights</th>\n",
       "      <th>number_of_reviews</th>\n",
       "      <th>last_review</th>\n",
       "      <th>reviews_per_month</th>\n",
       "      <th>calculated_host_listings_count</th>\n",
       "      <th>availability_365</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>44054</td>\n",
       "      <td>Modern and Comfortable Living in CBD</td>\n",
       "      <td>192875</td>\n",
       "      <td>East Apartments</td>\n",
       "      <td>NaN</td>\n",
       "      <td>朝阳区 / Chaoyang</td>\n",
       "      <td>39.89503</td>\n",
       "      <td>116.45163</td>\n",
       "      <td>Entire home/apt</td>\n",
       "      <td>792</td>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>2019-03-04</td>\n",
       "      <td>0.85</td>\n",
       "      <td>9</td>\n",
       "      <td>341</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>100213</td>\n",
       "      <td>The Great Wall Box Deluxe Suite A团园长城小院东院套房</td>\n",
       "      <td>527062</td>\n",
       "      <td>Joe</td>\n",
       "      <td>NaN</td>\n",
       "      <td>密云县 / Miyun</td>\n",
       "      <td>40.68434</td>\n",
       "      <td>117.17231</td>\n",
       "      <td>Private room</td>\n",
       "      <td>1201</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2017-10-08</td>\n",
       "      <td>0.10</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>128496</td>\n",
       "      <td>Heart of Beijing: House with View 2</td>\n",
       "      <td>467520</td>\n",
       "      <td>Cindy</td>\n",
       "      <td>NaN</td>\n",
       "      <td>东城区</td>\n",
       "      <td>39.93213</td>\n",
       "      <td>116.42200</td>\n",
       "      <td>Entire home/apt</td>\n",
       "      <td>389</td>\n",
       "      <td>3</td>\n",
       "      <td>259</td>\n",
       "      <td>2019-02-05</td>\n",
       "      <td>2.70</td>\n",
       "      <td>1</td>\n",
       "      <td>93</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       id                                         name  host_id  \\\n",
       "0   44054         Modern and Comfortable Living in CBD   192875   \n",
       "1  100213  The Great Wall Box Deluxe Suite A团园长城小院东院套房   527062   \n",
       "2  128496          Heart of Beijing: House with View 2   467520   \n",
       "\n",
       "         host_name  neighbourhood_group   neighbourhood  latitude  longitude  \\\n",
       "0  East Apartments                  NaN  朝阳区 / Chaoyang  39.89503  116.45163   \n",
       "1              Joe                  NaN     密云县 / Miyun  40.68434  117.17231   \n",
       "2            Cindy                  NaN             东城区  39.93213  116.42200   \n",
       "\n",
       "         room_type  price  minimum_nights  number_of_reviews last_review  \\\n",
       "0  Entire home/apt    792               1                 89  2019-03-04   \n",
       "1     Private room   1201               1                  2  2017-10-08   \n",
       "2  Entire home/apt    389               3                259  2019-02-05   \n",
       "\n",
       "   reviews_per_month  calculated_host_listings_count  availability_365  \n",
       "0               0.85                               9               341  \n",
       "1               0.10                               4                 0  \n",
       "2               2.70                               1                93  "
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.141555Z",
     "start_time": "2019-11-03T13:04:32.032167Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>host_id</th>\n",
       "      <th>neighbourhood_group</th>\n",
       "      <th>latitude</th>\n",
       "      <th>longitude</th>\n",
       "      <th>price</th>\n",
       "      <th>minimum_nights</th>\n",
       "      <th>number_of_reviews</th>\n",
       "      <th>reviews_per_month</th>\n",
       "      <th>calculated_host_listings_count</th>\n",
       "      <th>availability_365</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>count</td>\n",
       "      <td>2.845200e+04</td>\n",
       "      <td>2.845200e+04</td>\n",
       "      <td>0.0</td>\n",
       "      <td>28452.000000</td>\n",
       "      <td>28452.000000</td>\n",
       "      <td>28452.000000</td>\n",
       "      <td>28452.000000</td>\n",
       "      <td>28452.000000</td>\n",
       "      <td>17294.000000</td>\n",
       "      <td>28452.000000</td>\n",
       "      <td>28452.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>mean</td>\n",
       "      <td>2.628583e+07</td>\n",
       "      <td>1.442821e+08</td>\n",
       "      <td>NaN</td>\n",
       "      <td>39.983225</td>\n",
       "      <td>116.442000</td>\n",
       "      <td>611.203325</td>\n",
       "      <td>2.729685</td>\n",
       "      <td>7.103156</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>12.818290</td>\n",
       "      <td>220.342120</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>std</td>\n",
       "      <td>6.403312e+06</td>\n",
       "      <td>7.057051e+07</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.186984</td>\n",
       "      <td>0.204796</td>\n",
       "      <td>1623.535077</td>\n",
       "      <td>17.920932</td>\n",
       "      <td>16.815067</td>\n",
       "      <td>1.581243</td>\n",
       "      <td>29.261321</td>\n",
       "      <td>138.430677</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>min</td>\n",
       "      <td>4.405400e+04</td>\n",
       "      <td>1.928750e+05</td>\n",
       "      <td>NaN</td>\n",
       "      <td>39.455810</td>\n",
       "      <td>115.473390</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.010000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>25%</td>\n",
       "      <td>2.245616e+07</td>\n",
       "      <td>8.708958e+07</td>\n",
       "      <td>NaN</td>\n",
       "      <td>39.897330</td>\n",
       "      <td>116.355283</td>\n",
       "      <td>235.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.290000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>87.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>50%</td>\n",
       "      <td>2.787765e+07</td>\n",
       "      <td>1.525464e+08</td>\n",
       "      <td>NaN</td>\n",
       "      <td>39.930905</td>\n",
       "      <td>116.434665</td>\n",
       "      <td>389.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.800000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>209.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>75%</td>\n",
       "      <td>3.134482e+07</td>\n",
       "      <td>2.061464e+08</td>\n",
       "      <td>NaN</td>\n",
       "      <td>39.990470</td>\n",
       "      <td>116.491122</td>\n",
       "      <td>577.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.750000</td>\n",
       "      <td>11.000000</td>\n",
       "      <td>361.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>max</td>\n",
       "      <td>3.395441e+07</td>\n",
       "      <td>2.563498e+08</td>\n",
       "      <td>NaN</td>\n",
       "      <td>40.949660</td>\n",
       "      <td>117.495270</td>\n",
       "      <td>68983.000000</td>\n",
       "      <td>1125.000000</td>\n",
       "      <td>322.000000</td>\n",
       "      <td>20.000000</td>\n",
       "      <td>222.000000</td>\n",
       "      <td>365.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 id       host_id  neighbourhood_group      latitude  \\\n",
       "count  2.845200e+04  2.845200e+04                  0.0  28452.000000   \n",
       "mean   2.628583e+07  1.442821e+08                  NaN     39.983225   \n",
       "std    6.403312e+06  7.057051e+07                  NaN      0.186984   \n",
       "min    4.405400e+04  1.928750e+05                  NaN     39.455810   \n",
       "25%    2.245616e+07  8.708958e+07                  NaN     39.897330   \n",
       "50%    2.787765e+07  1.525464e+08                  NaN     39.930905   \n",
       "75%    3.134482e+07  2.061464e+08                  NaN     39.990470   \n",
       "max    3.395441e+07  2.563498e+08                  NaN     40.949660   \n",
       "\n",
       "          longitude         price  minimum_nights  number_of_reviews  \\\n",
       "count  28452.000000  28452.000000    28452.000000       28452.000000   \n",
       "mean     116.442000    611.203325        2.729685           7.103156   \n",
       "std        0.204796   1623.535077       17.920932          16.815067   \n",
       "min      115.473390      0.000000        1.000000           0.000000   \n",
       "25%      116.355283    235.000000        1.000000           0.000000   \n",
       "50%      116.434665    389.000000        1.000000           1.000000   \n",
       "75%      116.491122    577.000000        1.000000           6.000000   \n",
       "max      117.495270  68983.000000     1125.000000         322.000000   \n",
       "\n",
       "       reviews_per_month  calculated_host_listings_count  availability_365  \n",
       "count       17294.000000                    28452.000000      28452.000000  \n",
       "mean            1.319757                       12.818290        220.342120  \n",
       "std             1.581243                       29.261321        138.430677  \n",
       "min             0.010000                        1.000000          0.000000  \n",
       "25%             0.290000                        2.000000         87.000000  \n",
       "50%             0.800000                        5.000000        209.000000  \n",
       "75%             1.750000                       11.000000        361.000000  \n",
       "max            20.000000                      222.000000        365.000000  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# #数据清洗与处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.297800Z",
     "start_time": "2019-11-03T13:04:32.141555Z"
    }
   },
   "outputs": [],
   "source": [
    "data.drop(\"neighbourhood_group\",axis=1,inplace=True)\n",
    "data[\"number_of_reviews\"].fillna(value=data[\"number_of_reviews\"].median(),inplace=True) #中位值填充，极值差大\n",
    "data[\"reviews_per_month\"].fillna(value=data[\"reviews_per_month\"].mean(),inplace=True) #均值填充\n",
    "data[\"last_review\"].fillna(value=data[\"last_review\"].mode().iloc[0],inplace=True) #众数填充（多个众数时，填充第一个)\n",
    "data[\"neighbourhood\"]=data[\"neighbourhood\"].apply(lambda x:re.sub(\"[A-Za-z0-9/]\", \"\",x)) #滤除非汉字部分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.344656Z",
     "start_time": "2019-11-03T13:04:32.297800Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 28452 entries, 0 to 28451\n",
      "Data columns (total 15 columns):\n",
      "id                                28452 non-null int64\n",
      "name                              28451 non-null object\n",
      "host_id                           28452 non-null int64\n",
      "host_name                         28452 non-null object\n",
      "neighbourhood                     28452 non-null object\n",
      "latitude                          28452 non-null float64\n",
      "longitude                         28452 non-null float64\n",
      "room_type                         28452 non-null object\n",
      "price                             28452 non-null int64\n",
      "minimum_nights                    28452 non-null int64\n",
      "number_of_reviews                 28452 non-null int64\n",
      "last_review                       28452 non-null object\n",
      "reviews_per_month                 28452 non-null float64\n",
      "calculated_host_listings_count    28452 non-null int64\n",
      "availability_365                  28452 non-null int64\n",
      "dtypes: float64(3), int64(7), object(5)\n",
      "memory usage: 3.3+ MB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据分析"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# #房东分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.375909Z",
     "start_time": "2019-11-03T13:04:32.344656Z"
    }
   },
   "outputs": [],
   "source": [
    "df_host_id=data[\"host_id\"].value_counts().head(120)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.422780Z",
     "start_time": "2019-11-03T13:04:32.375909Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    10792.000000\n",
       "mean         2.636397\n",
       "std          5.181313\n",
       "min          1.000000\n",
       "25%          1.000000\n",
       "50%          1.000000\n",
       "75%          2.000000\n",
       "max        222.000000\n",
       "Name: host_id, dtype: float64"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[\"host_id\"].value_counts().describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "分析：总共10792名房东；人均拥有2.63套房源；最小值为1，最大值为222，极差为221；标准差为5.18，标准差系数为1.97.由这些统计数据可得：房东拥有的房源数量差异较大，分布较为分散，少部分人占据绝大多数房子，符合帕累托法则。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.469670Z",
     "start_time": "2019-11-03T13:04:32.422780Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"09e06d8ac82843f78fb387671d1c1cfd\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_09e06d8ac82843f78fb387671d1c1cfd = echarts.init(\n",
       "                    document.getElementById('09e06d8ac82843f78fb387671d1c1cfd'), 'white', {renderer: 'canvas'});\n",
       "                var option_09e06d8ac82843f78fb387671d1c1cfd = {\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"data\": [\n",
       "                222,\n",
       "                210,\n",
       "                115,\n",
       "                98,\n",
       "                77,\n",
       "                72,\n",
       "                66,\n",
       "                66,\n",
       "                64,\n",
       "                62,\n",
       "                61,\n",
       "                57,\n",
       "                51,\n",
       "                51,\n",
       "                48,\n",
       "                47,\n",
       "                46,\n",
       "                45,\n",
       "                43,\n",
       "                43,\n",
       "                42,\n",
       "                42,\n",
       "                41,\n",
       "                41,\n",
       "                41,\n",
       "                41,\n",
       "                39,\n",
       "                38,\n",
       "                37,\n",
       "                36,\n",
       "                35,\n",
       "                34,\n",
       "                33,\n",
       "                33,\n",
       "                33,\n",
       "                31,\n",
       "                31,\n",
       "                30,\n",
       "                30,\n",
       "                30,\n",
       "                29,\n",
       "                29,\n",
       "                28,\n",
       "                28,\n",
       "                28,\n",
       "                28,\n",
       "                28,\n",
       "                28,\n",
       "                27,\n",
       "                27,\n",
       "                27,\n",
       "                27,\n",
       "                27,\n",
       "                27,\n",
       "                26,\n",
       "                26,\n",
       "                26,\n",
       "                26,\n",
       "                26,\n",
       "                26,\n",
       "                26,\n",
       "                26,\n",
       "                25,\n",
       "                25,\n",
       "                25,\n",
       "                25,\n",
       "                25,\n",
       "                25,\n",
       "                25,\n",
       "                25,\n",
       "                25,\n",
       "                25,\n",
       "                25,\n",
       "                24,\n",
       "                24,\n",
       "                24,\n",
       "                24,\n",
       "                24,\n",
       "                24,\n",
       "                24,\n",
       "                23,\n",
       "                23,\n",
       "                23,\n",
       "                23,\n",
       "                23,\n",
       "                23,\n",
       "                23,\n",
       "                23,\n",
       "                23,\n",
       "                23,\n",
       "                22,\n",
       "                22,\n",
       "                22,\n",
       "                22,\n",
       "                22,\n",
       "                22,\n",
       "                22,\n",
       "                22,\n",
       "                22,\n",
       "                22,\n",
       "                22,\n",
       "                21,\n",
       "                21,\n",
       "                21,\n",
       "                21,\n",
       "                21,\n",
       "                21,\n",
       "                21,\n",
       "                21,\n",
       "                21,\n",
       "                21,\n",
       "                21,\n",
       "                21,\n",
       "                21,\n",
       "                21,\n",
       "                20,\n",
       "                20,\n",
       "                20,\n",
       "                20,\n",
       "                20\n",
       "            ],\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"show\": false,\n",
       "                \"position\": \"top\",\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"rippleEffect\": {\n",
       "                \"show\": true,\n",
       "                \"brushType\": \"stroke\",\n",
       "                \"scale\": 2.5,\n",
       "                \"period\": 4\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\"\n",
       "            ],\n",
       "            \"selected\": {\n",
       "                \"\": true\n",
       "            },\n",
       "            \"show\": true\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"name\": \"host_id\",\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"axisLabel\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"top\",\n",
       "                \"rotate\": 90,\n",
       "                \"margin\": 8,\n",
       "                \"fontSize\": 7\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            },\n",
       "            \"data\": [\n",
       "                209669028,\n",
       "                54436429,\n",
       "                156249912,\n",
       "                17619297,\n",
       "                156143513,\n",
       "                160411460,\n",
       "                20788084,\n",
       "                196377840,\n",
       "                67553380,\n",
       "                160674938,\n",
       "                147588904,\n",
       "                35181501,\n",
       "                45203646,\n",
       "                131565769,\n",
       "                185173263,\n",
       "                165368371,\n",
       "                198529612,\n",
       "                151027648,\n",
       "                230177305,\n",
       "                8837778,\n",
       "                119706958,\n",
       "                135222407,\n",
       "                14770202,\n",
       "                235081784,\n",
       "                169233777,\n",
       "                248100378,\n",
       "                247529157,\n",
       "                197910205,\n",
       "                139578376,\n",
       "                64255458,\n",
       "                187960049,\n",
       "                148353191,\n",
       "                100576006,\n",
       "                213468831,\n",
       "                35287975,\n",
       "                27240167,\n",
       "                60847977,\n",
       "                181417731,\n",
       "                136552084,\n",
       "                31280856,\n",
       "                204937846,\n",
       "                161626931,\n",
       "                127349262,\n",
       "                168658382,\n",
       "                216709379,\n",
       "                139363184,\n",
       "                155053807,\n",
       "                43986556,\n",
       "                136495629,\n",
       "                199608290,\n",
       "                159064202,\n",
       "                117444712,\n",
       "                209622388,\n",
       "                81238003,\n",
       "                215934073,\n",
       "                189725505,\n",
       "                184187839,\n",
       "                178748241,\n",
       "                84594172,\n",
       "                165590104,\n",
       "                66529174,\n",
       "                19482030,\n",
       "                29185435,\n",
       "                29605408,\n",
       "                146456130,\n",
       "                136561759,\n",
       "                151226826,\n",
       "                42565149,\n",
       "                230114738,\n",
       "                24399335,\n",
       "                192771130,\n",
       "                162737493,\n",
       "                29719851,\n",
       "                184003671,\n",
       "                99367920,\n",
       "                63572465,\n",
       "                151033879,\n",
       "                107964962,\n",
       "                195913111,\n",
       "                151727455,\n",
       "                139339588,\n",
       "                69955838,\n",
       "                45773267,\n",
       "                229677061,\n",
       "                52080918,\n",
       "                186604107,\n",
       "                86950707,\n",
       "                181718132,\n",
       "                135287911,\n",
       "                122047010,\n",
       "                213903652,\n",
       "                132023110,\n",
       "                141982809,\n",
       "                201988771,\n",
       "                153994278,\n",
       "                229754348,\n",
       "                177444791,\n",
       "                164104576,\n",
       "                128951070,\n",
       "                121622725,\n",
       "                153700545,\n",
       "                207500717,\n",
       "                167867524,\n",
       "                169638403,\n",
       "                73699657,\n",
       "                170462410,\n",
       "                84633406,\n",
       "                177779453,\n",
       "                42065892,\n",
       "                102340754,\n",
       "                242651382,\n",
       "                177988686,\n",
       "                99317741,\n",
       "                71442680,\n",
       "                103968626,\n",
       "                106213831,\n",
       "                134984392,\n",
       "                121225836,\n",
       "                152546448,\n",
       "                250241366\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"host_id Count\"\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"horizontal\",\n",
       "        \"itemSize\": 15,\n",
       "        \"itemGap\": 10,\n",
       "        \"left\": \"80%\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"save as image\",\n",
       "                \"type\": \"png\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"restore\"\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"data view\",\n",
       "                \"readOnly\": false\n",
       "            },\n",
       "            \"dataZoom\": {\n",
       "                \"show\": true,\n",
       "                \"title\": {\n",
       "                    \"zoom\": \"data zoom\",\n",
       "                    \"back\": \"data zoom restore\"\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"visualMap\": {\n",
       "        \"show\": true,\n",
       "        \"type\": \"continuous\",\n",
       "        \"min\": 0,\n",
       "        \"max\": 100,\n",
       "        \"inRange\": {\n",
       "            \"color\": [\n",
       "                \"#50a3ba\",\n",
       "                \"#eac763\",\n",
       "                \"#d94e5d\"\n",
       "            ]\n",
       "        },\n",
       "        \"calculable\": true,\n",
       "        \"splitNumber\": 5,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"showLabel\": true\n",
       "    }\n",
       "};\n",
       "                chart_09e06d8ac82843f78fb387671d1c1cfd.setOption(option_09e06d8ac82843f78fb387671d1c1cfd);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x16ca91ffc48>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# bar=Bar(init_opts=opts.InitOpts(renderer = \"svg\"))#设置导出为svg\n",
    "bar=Bar()\n",
    "bar.add_xaxis(df_host_id.index.tolist())\n",
    "bar.add_yaxis(\"\",df_host_id.values.tolist())\n",
    "bar.set_global_opts(title_opts=opts.TitleOpts(title=\"host_id Count\", subtitle=\"\"), \n",
    "                    visualmap_opts=opts.VisualMapOpts(is_show=True),\n",
    "                    toolbox_opts=opts.ToolboxOpts(is_show=True),\n",
    "                    xaxis_opts=opts.AxisOpts(name=\"host_id\",axislabel_opts=opts.LabelOpts(rotate=90,font_size =7))) #x轴刻度标签设置\n",
    "bar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))\n",
    "\n",
    "bar.render_notebook()\n",
    "# make_snapshot(snapshot, bar.render(), \"bar0.svg\") #导出为svg"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "分析：从分布形态来看，房东的房源数量呈现长尾分布，大量房源集中在少部分头部房东身上，而绝大多数房东的房源量仅为1."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# #区域分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.532150Z",
     "start_time": "2019-11-03T13:04:32.469670Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "朝阳区       10810\n",
       "东城区        3346\n",
       "海淀区        3197\n",
       "丰台区        1758\n",
       "西城区        1701\n",
       "通州区        1290\n",
       "昌平区        1034\n",
       "密云区         935\n",
       "顺义区         920\n",
       "怀柔区         833\n",
       "大兴区         823\n",
       "延庆区         718\n",
       "房山区         579\n",
       "石景山区        213\n",
       "门头沟区        152\n",
       "平谷区         143\n",
       "Name: neighbourhood, dtype: int64"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[\"neighbourhood\"]=data[\"neighbourhood\"].apply(lambda x: x.replace(\"县\",\"区\"))\n",
    "df_neighbourhood=data[\"neighbourhood\"].value_counts()\n",
    "df_neighbourhood"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.563399Z",
     "start_time": "2019-11-03T13:04:32.532150Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count       16.000000\n",
       "mean      1778.250000\n",
       "std       2587.490509\n",
       "min        143.000000\n",
       "25%        683.250000\n",
       "50%        927.500000\n",
       "75%       1715.250000\n",
       "max      10810.000000\n",
       "Name: neighbourhood, dtype: float64"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_neighbourhood.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.594649Z",
     "start_time": "2019-11-03T13:04:32.563399Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"33c3120dcc6e4e1db13af8c53815e4ff\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_33c3120dcc6e4e1db13af8c53815e4ff = echarts.init(\n",
       "                    document.getElementById('33c3120dcc6e4e1db13af8c53815e4ff'), 'white', {renderer: 'canvas'});\n",
       "                var option_33c3120dcc6e4e1db13af8c53815e4ff = {\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"pie\",\n",
       "            \"clockwise\": true,\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"name\": \"\\u671d\\u9633\\u533a  \",\n",
       "                    \"value\": 10810\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e1c\\u57ce\\u533a\",\n",
       "                    \"value\": 3346\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6d77\\u6dc0\\u533a\",\n",
       "                    \"value\": 3197\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e30\\u53f0\\u533a  \",\n",
       "                    \"value\": 1758\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u897f\\u57ce\\u533a\",\n",
       "                    \"value\": 1701\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u901a\\u5dde\\u533a  \",\n",
       "                    \"value\": 1290\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u660c\\u5e73\\u533a\",\n",
       "                    \"value\": 1034\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5bc6\\u4e91\\u533a  \",\n",
       "                    \"value\": 935\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u987a\\u4e49\\u533a  \",\n",
       "                    \"value\": 920\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6000\\u67d4\\u533a  \",\n",
       "                    \"value\": 833\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5927\\u5174\\u533a  \",\n",
       "                    \"value\": 823\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5ef6\\u5e86\\u533a  \",\n",
       "                    \"value\": 718\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u623f\\u5c71\\u533a\",\n",
       "                    \"value\": 579\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u77f3\\u666f\\u5c71\\u533a\",\n",
       "                    \"value\": 213\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u95e8\\u5934\\u6c9f\\u533a  \",\n",
       "                    \"value\": 152\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5e73\\u8c37\\u533a  \",\n",
       "                    \"value\": 143\n",
       "                }\n",
       "            ],\n",
       "            \"radius\": [\n",
       "                \"0%\",\n",
       "                \"75%\"\n",
       "            ],\n",
       "            \"center\": [\n",
       "                \"50%\",\n",
       "                \"50%\"\n",
       "            ],\n",
       "            \"label\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"top\",\n",
       "                \"margin\": 8,\n",
       "                \"formatter\": \"{b}\"\n",
       "            },\n",
       "            \"rippleEffect\": {\n",
       "                \"show\": true,\n",
       "                \"brushType\": \"stroke\",\n",
       "                \"scale\": 2.5,\n",
       "                \"period\": 4\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\\u671d\\u9633\\u533a  \",\n",
       "                \"\\u4e1c\\u57ce\\u533a\",\n",
       "                \"\\u6d77\\u6dc0\\u533a\",\n",
       "                \"\\u4e30\\u53f0\\u533a  \",\n",
       "                \"\\u897f\\u57ce\\u533a\",\n",
       "                \"\\u901a\\u5dde\\u533a  \",\n",
       "                \"\\u660c\\u5e73\\u533a\",\n",
       "                \"\\u5bc6\\u4e91\\u533a  \",\n",
       "                \"\\u987a\\u4e49\\u533a  \",\n",
       "                \"\\u6000\\u67d4\\u533a  \",\n",
       "                \"\\u5927\\u5174\\u533a  \",\n",
       "                \"\\u5ef6\\u5e86\\u533a  \",\n",
       "                \"\\u623f\\u5c71\\u533a\",\n",
       "                \"\\u77f3\\u666f\\u5c71\\u533a\",\n",
       "                \"\\u95e8\\u5934\\u6c9f\\u533a  \",\n",
       "                \"\\u5e73\\u8c37\\u533a  \"\n",
       "            ],\n",
       "            \"selected\": {},\n",
       "            \"show\": false\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"title\": [\n",
       "        {}\n",
       "    ]\n",
       "};\n",
       "                chart_33c3120dcc6e4e1db13af8c53815e4ff.setOption(option_33c3120dcc6e4e1db13af8c53815e4ff);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x16ca9203c08>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pyecharts.charts import Page, Pie\n",
    "\n",
    "def pie_base() -> Pie:\n",
    "    c = (\n",
    "        Pie()\n",
    "        .add(\"\", [list(z) for z in zip(df_neighbourhood.index.tolist(), df_neighbourhood.values.tolist())])\n",
    "        .set_global_opts(title_opts=opts.TitleOpts(title=\"\"),legend_opts=opts.LegendOpts(is_show=False\n",
    "            ))\n",
    "        .set_series_opts(label_opts=opts.LabelOpts(formatter=\"{b}\"))\n",
    "    )\n",
    "    return c\n",
    "pie_base().render_notebook()\n",
    "# pie_base().render()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.625896Z",
     "start_time": "2019-11-03T13:04:32.594649Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min', '北京':'https://assets.pyecharts.org/assets/maps/beijing'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"4c72805fa361424e85ba977ce56d5125\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts', '北京'], function(echarts) {\n",
       "                var chart_4c72805fa361424e85ba977ce56d5125 = echarts.init(\n",
       "                    document.getElementById('4c72805fa361424e85ba977ce56d5125'), 'white', {renderer: 'canvas'});\n",
       "                var option_4c72805fa361424e85ba977ce56d5125 = {\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"map\",\n",
       "            \"name\": \"geo\",\n",
       "            \"label\": {\n",
       "                \"show\": false,\n",
       "                \"position\": \"top\",\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"mapType\": \"\\u5317\\u4eac\",\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"name\": \"\\u671d\\u9633\\u533a  \",\n",
       "                    \"value\": 10810\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e1c\\u57ce\\u533a\",\n",
       "                    \"value\": 3346\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6d77\\u6dc0\\u533a\",\n",
       "                    \"value\": 3197\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e30\\u53f0\\u533a  \",\n",
       "                    \"value\": 1758\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u897f\\u57ce\\u533a\",\n",
       "                    \"value\": 1701\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u901a\\u5dde\\u533a  \",\n",
       "                    \"value\": 1290\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u660c\\u5e73\\u533a\",\n",
       "                    \"value\": 1034\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5bc6\\u4e91\\u533a  \",\n",
       "                    \"value\": 935\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u987a\\u4e49\\u533a  \",\n",
       "                    \"value\": 920\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6000\\u67d4\\u533a  \",\n",
       "                    \"value\": 833\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5927\\u5174\\u533a  \",\n",
       "                    \"value\": 823\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5ef6\\u5e86\\u533a  \",\n",
       "                    \"value\": 718\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u623f\\u5c71\\u533a\",\n",
       "                    \"value\": 579\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u77f3\\u666f\\u5c71\\u533a\",\n",
       "                    \"value\": 213\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u95e8\\u5934\\u6c9f\\u533a  \",\n",
       "                    \"value\": 152\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5e73\\u8c37\\u533a  \",\n",
       "                    \"value\": 143\n",
       "                }\n",
       "            ],\n",
       "            \"roam\": true,\n",
       "            \"zoom\": 1,\n",
       "            \"showLegendSymbol\": true,\n",
       "            \"emphasis\": {},\n",
       "            \"rippleEffect\": {\n",
       "                \"show\": true,\n",
       "                \"brushType\": \"stroke\",\n",
       "                \"scale\": 2.5,\n",
       "                \"period\": 4\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"geo\"\n",
       "            ],\n",
       "            \"selected\": {\n",
       "                \"geo\": true\n",
       "            },\n",
       "            \"show\": true\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u623f\\u6e90\\u5206\\u5e03\"\n",
       "        }\n",
       "    ],\n",
       "    \"visualMap\": {\n",
       "        \"show\": true,\n",
       "        \"type\": \"piecewise\",\n",
       "        \"min\": 0,\n",
       "        \"max\": 11000,\n",
       "        \"inRange\": {\n",
       "            \"color\": [\n",
       "                \"#50a3ba\",\n",
       "                \"#eac763\",\n",
       "                \"#d94e5d\"\n",
       "            ]\n",
       "        },\n",
       "        \"calculable\": true,\n",
       "        \"splitNumber\": 5,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"showLabel\": true\n",
       "    }\n",
       "};\n",
       "                chart_4c72805fa361424e85ba977ce56d5125.setOption(option_4c72805fa361424e85ba977ce56d5125);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x16ca9203cc8>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c = (\n",
    "        Map()\n",
    "        .add(\n",
    "            \"geo\",\n",
    "            [list(z) for z in zip(df_neighbourhood.index.tolist(), df_neighbourhood.values.tolist())],\n",
    "            '北京',\n",
    "        )\n",
    "        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))\n",
    "        .set_global_opts(\n",
    "            visualmap_opts=opts.VisualMapOpts(max_=11000,is_piecewise=True),\n",
    "            title_opts=opts.TitleOpts(title=\"房源分布\"),\n",
    "        )\n",
    "    )\n",
    "\n",
    "c.render_notebook()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "分析：房源集中在朝阳、东城和海淀三个大区，占据了全部房源的70%左右，石景山区、门头沟区、平谷区等远离市中心的城区房源较少。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.688395Z",
     "start_time": "2019-11-03T13:04:32.625896Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>minimum_nights</th>\n",
       "      <th>number_of_reviews</th>\n",
       "      <th>reviews_per_month</th>\n",
       "      <th>availability_365</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>neighbourhood</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>东城区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>168.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>朝阳区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>181.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>海淀区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>313.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>西城区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>180.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>丰台区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>298.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>大兴区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>351.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>昌平区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>181.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>石景山区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>316.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>顺义区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>297.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>密云区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>181.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>平谷区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>178.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>延庆区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>179.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>怀柔区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>346.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>房山区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>346.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>通州区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>359.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>门头沟区</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>305.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               minimum_nights  number_of_reviews  reviews_per_month  \\\n",
       "neighbourhood                                                         \n",
       "东城区                       1.0                3.0           1.319757   \n",
       "朝阳区                       1.0                2.0           1.319757   \n",
       "海淀区                       1.0                2.0           1.319757   \n",
       "西城区                       1.0                2.0           1.319757   \n",
       "丰台区                       1.0                1.0           1.319757   \n",
       "大兴区                       1.0                1.0           1.319757   \n",
       "昌平区                       1.0                1.0           1.319757   \n",
       "石景山区                      1.0                1.0           1.319757   \n",
       "顺义区                       1.0                1.0           1.319757   \n",
       "密云区                       1.0                0.0           1.319757   \n",
       "平谷区                       1.0                0.0           1.319757   \n",
       "延庆区                       1.0                0.0           1.319757   \n",
       "怀柔区                       1.0                0.0           1.319757   \n",
       "房山区                       1.0                0.0           1.319757   \n",
       "通州区                       1.0                0.0           1.319757   \n",
       "门头沟区                      1.0                0.0           1.319757   \n",
       "\n",
       "               availability_365  \n",
       "neighbourhood                    \n",
       "东城区                       168.0  \n",
       "朝阳区                       181.0  \n",
       "海淀区                       313.0  \n",
       "西城区                       180.0  \n",
       "丰台区                       298.0  \n",
       "大兴区                       351.0  \n",
       "昌平区                       181.0  \n",
       "石景山区                      316.0  \n",
       "顺义区                       297.5  \n",
       "密云区                       181.0  \n",
       "平谷区                       178.0  \n",
       "延庆区                       179.0  \n",
       "怀柔区                       346.0  \n",
       "房山区                       346.0  \n",
       "通州区                       359.0  \n",
       "门头沟区                      305.5  "
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.groupby(\"neighbourhood\")[[\"minimum_nights\",\"number_of_reviews\",\"reviews_per_month\",\"availability_365\"]].median().sort_values(by=\"number_of_reviews\",ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.750900Z",
     "start_time": "2019-11-03T13:04:32.688395Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>minimum_nights</th>\n",
       "      <th>number_of_reviews</th>\n",
       "      <th>reviews_per_month</th>\n",
       "      <th>availability_365</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>neighbourhood</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>东城区</td>\n",
       "      <td>2.407053</td>\n",
       "      <td>14.340406</td>\n",
       "      <td>1.677971</td>\n",
       "      <td>195.798864</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>西城区</td>\n",
       "      <td>2.452675</td>\n",
       "      <td>8.847737</td>\n",
       "      <td>1.496890</td>\n",
       "      <td>207.766608</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>朝阳区</td>\n",
       "      <td>3.290934</td>\n",
       "      <td>8.220722</td>\n",
       "      <td>1.369384</td>\n",
       "      <td>212.362905</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>海淀区</td>\n",
       "      <td>3.686894</td>\n",
       "      <td>6.731936</td>\n",
       "      <td>1.251817</td>\n",
       "      <td>227.202690</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>丰台区</td>\n",
       "      <td>2.129693</td>\n",
       "      <td>5.385097</td>\n",
       "      <td>1.293091</td>\n",
       "      <td>235.195108</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>石景山区</td>\n",
       "      <td>1.845070</td>\n",
       "      <td>4.051643</td>\n",
       "      <td>1.168151</td>\n",
       "      <td>231.812207</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>顺义区</td>\n",
       "      <td>2.723913</td>\n",
       "      <td>3.777174</td>\n",
       "      <td>1.208822</td>\n",
       "      <td>237.038043</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>大兴区</td>\n",
       "      <td>2.221142</td>\n",
       "      <td>3.766707</td>\n",
       "      <td>1.084263</td>\n",
       "      <td>250.302552</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>昌平区</td>\n",
       "      <td>2.639265</td>\n",
       "      <td>2.611219</td>\n",
       "      <td>1.014224</td>\n",
       "      <td>221.712766</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>房山区</td>\n",
       "      <td>1.908463</td>\n",
       "      <td>2.580311</td>\n",
       "      <td>1.178904</td>\n",
       "      <td>243.696028</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>密云区</td>\n",
       "      <td>1.025668</td>\n",
       "      <td>2.268449</td>\n",
       "      <td>1.099628</td>\n",
       "      <td>226.619251</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>通州区</td>\n",
       "      <td>1.882171</td>\n",
       "      <td>2.206202</td>\n",
       "      <td>1.026900</td>\n",
       "      <td>262.044961</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>怀柔区</td>\n",
       "      <td>1.530612</td>\n",
       "      <td>1.899160</td>\n",
       "      <td>1.052463</td>\n",
       "      <td>254.716687</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>平谷区</td>\n",
       "      <td>1.006993</td>\n",
       "      <td>1.636364</td>\n",
       "      <td>1.070543</td>\n",
       "      <td>206.622378</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>门头沟区</td>\n",
       "      <td>1.605263</td>\n",
       "      <td>1.111842</td>\n",
       "      <td>0.999397</td>\n",
       "      <td>239.309211</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>延庆区</td>\n",
       "      <td>1.005571</td>\n",
       "      <td>0.873259</td>\n",
       "      <td>1.102420</td>\n",
       "      <td>213.520891</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               minimum_nights  number_of_reviews  reviews_per_month  \\\n",
       "neighbourhood                                                         \n",
       "东城区                  2.407053          14.340406           1.677971   \n",
       "西城区                  2.452675           8.847737           1.496890   \n",
       "朝阳区                  3.290934           8.220722           1.369384   \n",
       "海淀区                  3.686894           6.731936           1.251817   \n",
       "丰台区                  2.129693           5.385097           1.293091   \n",
       "石景山区                 1.845070           4.051643           1.168151   \n",
       "顺义区                  2.723913           3.777174           1.208822   \n",
       "大兴区                  2.221142           3.766707           1.084263   \n",
       "昌平区                  2.639265           2.611219           1.014224   \n",
       "房山区                  1.908463           2.580311           1.178904   \n",
       "密云区                  1.025668           2.268449           1.099628   \n",
       "通州区                  1.882171           2.206202           1.026900   \n",
       "怀柔区                  1.530612           1.899160           1.052463   \n",
       "平谷区                  1.006993           1.636364           1.070543   \n",
       "门头沟区                 1.605263           1.111842           0.999397   \n",
       "延庆区                  1.005571           0.873259           1.102420   \n",
       "\n",
       "               availability_365  \n",
       "neighbourhood                    \n",
       "东城区                  195.798864  \n",
       "西城区                  207.766608  \n",
       "朝阳区                  212.362905  \n",
       "海淀区                  227.202690  \n",
       "丰台区                  235.195108  \n",
       "石景山区                 231.812207  \n",
       "顺义区                  237.038043  \n",
       "大兴区                  250.302552  \n",
       "昌平区                  221.712766  \n",
       "房山区                  243.696028  \n",
       "密云区                  226.619251  \n",
       "通州区                  262.044961  \n",
       "怀柔区                  254.716687  \n",
       "平谷区                  206.622378  \n",
       "门头沟区                 239.309211  \n",
       "延庆区                  213.520891  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.groupby(\"neighbourhood\")[[\"minimum_nights\",\"number_of_reviews\",\"reviews_per_month\",\"availability_365\"]].mean().sort_values(by=\"number_of_reviews\",ascending=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.782142Z",
     "start_time": "2019-11-03T13:04:32.750900Z"
    }
   },
   "source": [
    "分析:东西城区、朝阳区的房源评论数较多，需求较多。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# #房屋类型分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.782142Z",
     "start_time": "2019-11-03T13:04:31.811Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Entire home/apt    16955\n",
       "Private room        9838\n",
       "Shared room         1659\n",
       "Name: room_type, dtype: int64"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_room_type=data[\"room_type\"].value_counts()\n",
    "df_room_type"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.782142Z",
     "start_time": "2019-11-03T13:04:31.815Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"76670074b19c41ea9fd3daefebba61e9\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_76670074b19c41ea9fd3daefebba61e9 = echarts.init(\n",
       "                    document.getElementById('76670074b19c41ea9fd3daefebba61e9'), 'white', {renderer: 'canvas'});\n",
       "                var option_76670074b19c41ea9fd3daefebba61e9 = {\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"pie\",\n",
       "            \"clockwise\": true,\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"name\": \"Entire home/apt\",\n",
       "                    \"value\": 16955\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Private room\",\n",
       "                    \"value\": 9838\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Shared room\",\n",
       "                    \"value\": 1659\n",
       "                }\n",
       "            ],\n",
       "            \"radius\": [\n",
       "                \"40%\",\n",
       "                \"55%\"\n",
       "            ],\n",
       "            \"center\": [\n",
       "                \"50%\",\n",
       "                \"50%\"\n",
       "            ],\n",
       "            \"label\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"outside\",\n",
       "                \"margin\": 8,\n",
       "                \"formatter\": \"{a|{a}}{abg|}\\n{hr|}\\n {b|{b}: }{c}  {per|{d}%}  \",\n",
       "                \"backgroundColor\": \"#eee\",\n",
       "                \"borderColor\": \"#aaa\",\n",
       "                \"borderWidth\": 1,\n",
       "                \"borderRadius\": 4,\n",
       "                \"rich\": {\n",
       "                    \"a\": {\n",
       "                        \"color\": \"#999\",\n",
       "                        \"lineHeight\": 22,\n",
       "                        \"align\": \"center\"\n",
       "                    },\n",
       "                    \"abg\": {\n",
       "                        \"backgroundColor\": \"#e3e3e3\",\n",
       "                        \"width\": \"100%\",\n",
       "                        \"align\": \"right\",\n",
       "                        \"height\": 22,\n",
       "                        \"borderRadius\": [\n",
       "                            4,\n",
       "                            4,\n",
       "                            0,\n",
       "                            0\n",
       "                        ]\n",
       "                    },\n",
       "                    \"hr\": {\n",
       "                        \"borderColor\": \"#aaa\",\n",
       "                        \"width\": \"100%\",\n",
       "                        \"borderWidth\": 0.5,\n",
       "                        \"height\": 0\n",
       "                    },\n",
       "                    \"b\": {\n",
       "                        \"fontSize\": 16,\n",
       "                        \"lineHeight\": 33\n",
       "                    },\n",
       "                    \"per\": {\n",
       "                        \"color\": \"#eee\",\n",
       "                        \"backgroundColor\": \"#334455\",\n",
       "                        \"padding\": [\n",
       "                            2,\n",
       "                            4\n",
       "                        ],\n",
       "                        \"borderRadius\": 2\n",
       "                    }\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"Entire home/apt\",\n",
       "                \"Private room\",\n",
       "                \"Shared room\"\n",
       "            ],\n",
       "            \"selected\": {},\n",
       "            \"show\": false\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"title\": [\n",
       "        {}\n",
       "    ]\n",
       "};\n",
       "                chart_76670074b19c41ea9fd3daefebba61e9.setOption(option_76670074b19c41ea9fd3daefebba61e9);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x16cc0aad788>"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def pie_rich_label() -> Pie:\n",
    "    c = (\n",
    "        Pie()\n",
    "        .add(\n",
    "            \"\",\n",
    "            [list(z) for z in zip(df_room_type.index.tolist(), df_room_type.values.tolist())],\n",
    "            radius=[\"40%\", \"55%\"],#控制环形图\n",
    "            label_opts=opts.LabelOpts(\n",
    "                position=\"outside\",\n",
    "                formatter=\"{a|{a}}{abg|}\\n{hr|}\\n {b|{b}: }{c}  {per|{d}%}  \",\n",
    "                background_color=\"#eee\",\n",
    "                border_color=\"#aaa\",\n",
    "                border_width=1,\n",
    "                border_radius=4,\n",
    "                rich={\n",
    "                    \"a\": {\"color\": \"#999\", \"lineHeight\": 22, \"align\": \"center\"},\n",
    "                    \"abg\": {\n",
    "                        \"backgroundColor\": \"#e3e3e3\",\n",
    "                        \"width\": \"100%\",\n",
    "                        \"align\": \"right\",\n",
    "                        \"height\": 22,\n",
    "                        \"borderRadius\": [4, 4, 0, 0],\n",
    "                    },\n",
    "                    \"hr\": {\n",
    "                        \"borderColor\": \"#aaa\",\n",
    "                        \"width\": \"100%\",\n",
    "                        \"borderWidth\": 0.5,\n",
    "                        \"height\": 0,\n",
    "                    },\n",
    "                    \"b\": {\"fontSize\": 16, \"lineHeight\": 33},\n",
    "                    \"per\": {\n",
    "                        \"color\": \"#eee\",\n",
    "                        \"backgroundColor\": \"#334455\",\n",
    "                        \"padding\": [2, 4],\n",
    "                        \"borderRadius\": 2,\n",
    "                    },\n",
    "                },\n",
    "            ),\n",
    "        )\n",
    "        .set_global_opts(title_opts=opts.TitleOpts(title=\"\"),legend_opts=opts.LegendOpts(is_show=False\n",
    "            ))\n",
    "    )\n",
    "    return c\n",
    "pie_rich_label().render_notebook()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "分析：目前市场上的房源以整租为主，占到60%左右上，而独立房间出租次之，房间合租则是最少。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.797766Z",
     "start_time": "2019-11-03T13:04:31.819Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>minimum_nights</th>\n",
       "      <th>number_of_reviews</th>\n",
       "      <th>reviews_per_month</th>\n",
       "      <th>availability_365</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>room_type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>Entire home/apt</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>290</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>Private room</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>180</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>Shared room</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1.319757</td>\n",
       "      <td>273</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 minimum_nights  number_of_reviews  reviews_per_month  \\\n",
       "room_type                                                               \n",
       "Entire home/apt               1                  1           1.319757   \n",
       "Private room                  1                  1           1.319757   \n",
       "Shared room                   1                  1           1.319757   \n",
       "\n",
       "                 availability_365  \n",
       "room_type                          \n",
       "Entire home/apt               290  \n",
       "Private room                  180  \n",
       "Shared room                   273  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.groupby(\"room_type\")[[\"minimum_nights\",\"number_of_reviews\",\"reviews_per_month\",\"availability_365\"]].median().sort_values(by=\"number_of_reviews\",ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.797766Z",
     "start_time": "2019-11-03T13:04:31.823Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>minimum_nights</th>\n",
       "      <th>number_of_reviews</th>\n",
       "      <th>reviews_per_month</th>\n",
       "      <th>availability_365</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>room_type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>Private room</td>\n",
       "      <td>2.510673</td>\n",
       "      <td>7.610083</td>\n",
       "      <td>1.284395</td>\n",
       "      <td>201.532832</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>Entire home/apt</td>\n",
       "      <td>2.809732</td>\n",
       "      <td>6.873371</td>\n",
       "      <td>1.356829</td>\n",
       "      <td>230.702389</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>Shared room</td>\n",
       "      <td>3.210368</td>\n",
       "      <td>6.445449</td>\n",
       "      <td>1.150570</td>\n",
       "      <td>226.000603</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 minimum_nights  number_of_reviews  reviews_per_month  \\\n",
       "room_type                                                               \n",
       "Private room           2.510673           7.610083           1.284395   \n",
       "Entire home/apt        2.809732           6.873371           1.356829   \n",
       "Shared room            3.210368           6.445449           1.150570   \n",
       "\n",
       "                 availability_365  \n",
       "room_type                          \n",
       "Private room           201.532832  \n",
       "Entire home/apt        230.702389  \n",
       "Shared room            226.000603  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.groupby(\"room_type\")[[\"minimum_nights\",\"number_of_reviews\",\"reviews_per_month\",\"availability_365\"]].mean().sort_values(by=\"number_of_reviews\",ascending=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "分析：从minimum_nights \tnumber_of_reviews \treviews_per_month \tavailability_365这个维度来看，在中位数这个量值来看，房屋类型之间无显著差异，而从均值来看，Private room的评论数最多，而Shared room 的月均评论数较多，说明这两种类型房源较受欢迎且其租客较青睐评论。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# #价格分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.797766Z",
     "start_time": "2019-11-03T13:04:31.829Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    28452.000000\n",
       "mean       611.203325\n",
       "std       1623.535077\n",
       "min          0.000000\n",
       "25%        235.000000\n",
       "50%        389.000000\n",
       "75%        577.000000\n",
       "max      68983.000000\n",
       "Name: price, dtype: float64"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[\"price\"].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.813393Z",
     "start_time": "2019-11-03T13:04:31.832Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x16ca949f108>"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEJCAYAAACDscAcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzde3xU9Z34/9c5c81kQi4wk4QgCGJBbg0YKsva0K3WIASp+anrD2r63Qdf2rq2WvZnuigWSre2qz8U667gr/3qug+ELujXJssuBHf7LbgVlIAiuEaQOySQ2+Q298s5vz8GBgIJk8hMJiHv5+ORhznnfM4575ngvOd8roqu6zpCCCFEL6mpDkAIIcTgIolDCCFEn0jiEEII0SeSOIQQQvSJJA4hhBB9IolDCCFEn0jiEEII0SfGVAfQX1pbPWha4oesDB9up6XFnfDrJpLEmDiDIU6JMTGGcoyqqpCdnd7j8SGTODRNT0riuHjtgU5iTJzBEKfEmBgSY/ekqkoIIUSfSOIQQgjRJ0OmqkoIIXqi6zqtrU0Eg34gWvXT2KiiaVpqA4vj+mNUMJutZGc7UBSl12dJ4hBCDHludzuKopCbOwpFiVbEGI0q4fDAThzXG6Oua7S1NeN2t5ORkdXr86SqSggx5Pl8bjIysmJJY6hQFJWMjGx8vr71zBpa75IQQnRD0yIYDEOzAsZgMKJpkT6dI4ljgDq6931OHvwo1WEIMWT0pY7/RvJlXrckjgHI3d5G1sf/hHnPb/H7vKkORwgxAP3pT7v4zW/Wp+TekjgGoON//FcsSpgMxceRP1SmOhwhxAB0551z+N73Hk3JvYdmpd4AFvT7cTTs5oxpNGgazrpdeN33YbPbUx2aEKKffPTRPv75n1/DYDBy7lwdkyZN5rvfXcLy5f8PmZlZWCwW7rnnXg4c+Iinn15FTc2H/OM/voSua+Tl5bNq1S+wWtNYt+7XfPzxfiIRjXnzSvnLv1yckPgkcQwgYQ0+++M2blH8tN92F6rRSPrHv+Xzd99mwvzvxMpZTEaM8qwoRNKEjryP78h/oeuJn87DNKEY01f+PG65Q4cO8sYbG7nppjH89KfL2b37T5w+fYq33voH8vNHsm3bVgCCwSA///lPefHFf+DWWyfw6qv/yPbt/4bRGP14f/31jQSDQf7mb37IxImT+OpXp1/3a5DEMYD4fAEyT+2kThlBvT8dFAW3PppRTe/zwYGvY7BYAZh5Wy5Gi/zphLiRFRZOZ/TomwGYO3ce//qvvyc7O4f8/JFdyh0/fhSHw8Gtt04A4Ac/+CEAzzzzE7744gj79+8DwOfzcuzYUUkcN5JQKMiJt9cyVu3gw6x5qBd6OjRlTuHWjtPoTcdh1KQURynE0GD6yp+TNunrKR0AaDAYYr9rmo7BYMBisXRTzghc6hnldrvxej1EIhp//dePM2fONwFoa2sjLS0tIbH1qsJj69atzJs3j3vuuYeNGzdedby2tpaysjJKSkpYsWIF4XAYgPr6ehYvXszcuXN59NFH8Xg8Xc576623WL58eWz7Bz/4AQsXLmThwoUsWLCACRMmcOjQIUKhEDNmzIgdW7hwIZFI3/odD2RBv58jb/49YwOfsz/tzzDkjo8dU7Kj3y5MrSdSFZ4QIgUOHjxAU1MjmqZRXf3v3HHH7G7LjR49hra2Vk6cOA7Axo3/TGXl/+b224v413+tJBwO4/V6+eu/XsJ///ehhMQW94mjoaGBtWvX8s4772A2m3n44Ye54447GD/+0odbRUUFv/jFLygsLOTpp59my5YtLFq0iNWrV7No0SLmz5/PK6+8wrp166ioqCAQCPAP//APbNy4kZKSkth1Xn311djvv/71ryksLGTq1Kl8+umnTJ8+nddeey0hL3ogCYWCHN3094wKneTYqHvR7bd2qVc1WtJo1DLJ9J2lLYVxCiH614gRDn7xi1U0NTUyc+YdzJx5B2+++cZV5SwWCz/96c/5xS9WEQ6HGDlyFD/96c8xm82cPXuGv/qrRUQiEebNW8CMGUUJiS1u4ti9ezezZs0iKys6j0lJSQnV1dX88IfRerS6ujr8fj+FhYUAlJWV8fLLL/Pggw9SU1PDK6+8Etv/ne98h4qKCmpqatA0jYqKCg4ePHjVPY8fP05lZSVbt0Ybfw4dOoTL5aKsrAyj0ciTTz7J1772tYS8AakU0SJ8/ru13Bw+yenR93LL175BzaGzV5VrMuRys3aKVk1DUaVVXIihIDs7h1//uus4jbff3hr7fd68Bdx330LCYY3p02/ntdc2XHWNH/+4Iimxxf0UamxsxOFwxLadTicNDQ09Hnc4HDQ0NNDa2ordbo+17F/cD3DnnXfyk5/8BKvV2u09161bx5IlS7Bf6IKqKAp33XUXmzdv5mc/+xnLli3D5XJ9iZc7sHz69m+52V/LiRFfZ+L0wh7Lua35pCsBwq3n+zE6IYToXtwnDk3TugxJ13W9y3ZPx68sB70b2t7e3s7777/Ps88+G9v38MMPx36fNGkS06ZN46OPPuLuu++Oe72Lhg9P3jgIhyOjz+f4vT5ubv2A0+mTmFVyN6oCmm7CZjNfXdY5Gk6BueMk9jHjsNksOHJsSY+xvw2GGGFwxCkx9k1jo4qxmz7u3e3rD1/72td6XauSiBhVVe3T3yNu4sjLy2Pfvn2x7aamJpxOZ5fjTU1Nse3m5macTic5OTl0dnYSiUQwGAxXndeTXbt2UVxc3KX3QGVlJTNmzGD06NFANDmZTKbevcILWlrcSVli0eHIoKmps8/nnT9+jHQFVMc4Otqj04r4LVa83uBVZXXTMLy6GYvrBJ1uP15vgKY+dA74sjH2p8EQIwyOOCXGvtM07aoeVENhWvWLNE3r8vdQVeWaX7bjpqrZs2ezZ88eXC4XPp+Pd999l+Li4tjxgoICLBYL+/fvB6Cqqori4mJMJhNFRUVs27YNiH74X35eTw4cOEBRUdcGnMOHD/P6668D0faP2tpabr/99rjXGsg6GusASMuMPwe+oqqcx8GI0LlkhyXEkJWMwX6DwZd53XETR25uLsuWLaO8vJxvf/vblJaWMm3aNJYuXcqhQ9GuXWvWrOFXv/oVc+fOxev1Ul5eDsCqVavYsmUL8+bNY9++ffz4xz+OG9CZM2fIzc3tsu+xxx7D5XJRWlrKE088wXPPPRdr/xisAq2NAGTm5PSqfKs5D4fSSsTn5sTeXXz6biXBQCCZIQoxZBiNZjyejiGXPHRdx+PpwGi8uor8WhR9iLxTA62q6pPN6xjV9hHD7nsS5cKfwGfJ6bZXFUCo8SSz27bSrGUyQm0HoJks9JmLGTd9ZlJi7E+DIUYYHHFKjH0XiYRpbW0iHL5UVayqA3/p2ETEaDSayc52dFmPJF5VlYwcTxGjt4V2JYPMXpZXs/MJtRqw4udYwTxsaRasX/wn2TWvcNb2E0ZNkFHlQnxZBoORESPyu+wbaMmtO6mKURJHilhDbfiMWdDLBz6DyUJN/l9iSMvgjhnjSAu4aMrOhprX6Th7DCRxCCH6iYwmSwFN08jU24lYe784PIBp2HBU06W6yGFZ0eeVcOfgH9MihBg8JHGkgLutFYsSRknPvq7rWCxmvLoFvDIZiRCi/0jiSIG2c/UAmDP69sTRHQ82DIGO676OEEL0liSOFPA0RxOHPev6njgA/KoNc3hgN+AJIW4skjhSINQanbMre/j1P3GETHZsmvu6ryOEEL0liSMVPM24dSsWS98G3XRHt9hJx0ckfOOsTyKEGNgkcaSAye+iU81MyChV1WrHoOh42loSEJkQQsQn4zj6SViDQCi6MmJ6uJ02awE+c9c2Dt3U/TTz12K2RWe07GxpYtiI+JNICiHE9ZLE0U8CoTA1tQ3o4TDTcXNST79qepHpheN7OLtn1oxo4vC2NickTiGEiEeqqvpZ2N2CQdEJmXs72ci1pWcOAyDYLlVVQoj+IYmjn+md0bVLNGtiEkdGRgaarhBxy+hxIUT/kMTRzwze6Ae8bk3M6mdGowE3VvC1J+R6QggRjySOfmYIRsdcGKyJW0/Eq6RjDMrocSFE/5DE0c9MYTc+3YRqSFy/hIAhHYuMHhdC9BNJHP3MHPHi0dPQSdyiUhFTOum6N2HXE0KIa5HE0c+smgefkkYC80Z09LjiJxSUpWSFEMkniaOfpWk+/EpaQq9pSIs2tHc0NyX0ukII0Z1eJY6tW7cyb9487rnnHjZu3HjV8draWsrKyigpKWHFihWEw9ER0vX19SxevJi5c+fy6KOP4vF4upz31ltvsXz58th2XV0d06dPZ+HChSxcuJAlS5YAEAwGqaio4N577+X+++/n2LFjX/oFp1o6PgIGW0KvaU6PNrS7XTIIUAiRfHETR0NDA2vXrmXTpk1UVlayefNmjh492qVMRUUFK1euZMeOHei6zpYtWwBYvXo1ixYtorq6milTprBu3ToAAoEAa9as4Ze//GWX63z66acsWLCAqqoqqqqqeO211wDYsGEDaWlpbN++naeffpqnnnoqIS++v2mRMDbFTyjBicOWER0E6GuVJw4hRPLFTRy7d+9m1qxZZGVlYbPZKCkpobq6Ona8rq4Ov99PYWEhAGVlZVRXVxMKhaipqaGkpKTLfoCamho0TaOioqLLvQ4dOsSRI0dYuHAh5eXlHD58GICdO3dy3333ATBz5kxcLhf19fUJePn9S/O5URUIG68vcajmNHyWnNiP0XETAL62ZjyBMJ5AmLCWiIiFEOJqcRNHY2MjDocjtu10OmloaOjxuMPhoKGhgdbWVux2O0ajsct+gDvvvJOf/OQnWK1dJ/WzWCzcd999/P73v2fJkiU89thjBIPBbu9x/vz5L/mSU0fzRcdaRK4zcQQjOjWHzsZ+PjvRTlhX8bQ0U1PbQE1tQ2xCRSGESLS4gwk0TUNRlNi2rutdtns6fmU54KrtK/3oRz+K/T5nzhxeeOEFjh8/ftW1dF1HVfvWrj98eOIG3F3J4Yg/Clx3ebFo0S6zRpudNNvVa3EYjAZs3ezvTblO3YY10olijyZjm82CI+dSgupNjKk2GGKEwRGnxJgYEmP34iaOvLw89u3bF9tuamrC6XR2Od7UdKluvbm5GafTSU5ODp2dnUQiEQwGw1XndWfDhg2UlpaSnR2dblzXdYxGI7m5uTQ2NjJ69Ogu9+iLlhY3mpbAPrAXOBwZNDXFH3znDYQJdrYBEFIt6N7gVWUi4Qjebvb3plw7dtLDbTS4/dH7eQM0RSJ9ijGVBkOMMDjilBgTYyjHqKrKNb9sx/3aPnv2bPbs2YPL5cLn8/Huu+9SXFwcO15QUIDFYmH//v0AVFVVUVxcjMlkoqioiG3btgFQWVnZ5bzu1NTU8PbbbwOwd+9eNE1j3LhxzJkzh6qqKgD27duHxWJh5MiR8UIfcAzB6B9YNSe2cRyg05hNDm3omjRuCCGSK27iyM3NZdmyZZSXl/Ptb3+b0tJSpk2bxtKlSzl06BAAa9as4Ve/+hVz587F6/VSXl4OwKpVq9iyZQvz5s1j3759/PjHP77mvVasWMHu3bspLS3lueee44UXXkBVVR555BGCwSDz58/n2Wef5fnnn0/AS+9/ppCbiK6gmi0Jv7bflI1NCaJ5ZbJDIURyKXoi1i8dBFJdVeUJhDn05ouMCp3ki9v+Z7fLxk4vHM/HB452c3b8cuHG4/xZ27/zwcjvYBp1GzNvyyXdcrFjwtB95E60wRCnxJgYQznG666qEoljjXjwKomdpyomfTgABndDnIJCCHF9JHH0I6vuTfg8VRcZ0jII6EYsvsbEX1wIIS4jiaMf2XQfATXxDeMAiqrSomeSEZIlZIUQySWJo59omoZd8RFM8HQjl2tXs8jSWpN2fSGEAEkc/Sbo82JSIoQNiZ0Z93JeUxbZqgct4E/aPYQQQhJHP/G0RdcaD5uS98QRtOQAEGkffNOxCCEGD0kc/cTfHk0cmjE9affQL/SsUjokcQghkkcSRz8Jdl4YmGe2XrvgdTDYs9F0BbNHelYJIZJHEkc/CXsuJo7kPXGoBiMu3U56UBZ0EkIkjySOfqJfmArEYE1eGwdAm5JFZsSV1HsIIYY2SRz9JdCJVzejqoak3sZtzCJHaScUCCT1PkKIoUsSRz8xBN149SRNN3IZr300JkXj3JZf4e0c2PPsCCEGJ0kc/cQUjs5TleS8gSl3HB+k/wX5kTrq/+XndLbJgEAhRGJJ4ugnFs1LQElej6rLGQqmcPYrD+HQmjn+x8p+uacQYuiQxNFPrLo/qdONXGnMtBm0koGhva7f7imEGBokcfQDTdOw4Sek9s8Tx0VuYw72QFP8gkII0QeSOPqBz92JQdEJG5M3T1V3wrYRZNNBwOfr1/sKIW5skjj6gac92kAd6efEYcocgaro1H0Rf1VBIYToLUkc/cDXER38pxn7t6oq0+EEoPmUJA4hROJI4ugHgQvzVCmm/n3iGO50ENEVvOdO9Ot9hRA3tl4ljq1btzJv3jzuueceNm7ceNXx2tpaysrKKCkpYcWKFYTDYQDq6+tZvHgxc+fO5dFHH8Xj8XQ576233mL58uWx7cbGRpYsWcLChQu5//772bNnDwChUIgZM2awcOHC2E8kEvnSL7q/hT0dAOj9nDhMJiMuMlHbz/XrfYUQN7a4iaOhoYG1a9eyadMmKisr2bx5M0ePdq36qKioYOXKlezYsQNd19myZQsAq1evZtGiRVRXVzNlyhTWrVsHQCAQYM2aNfzyl7/scp3nn3+eb37zm1RVVfHCCy/w5JNPEolEOHz4MNOnT6eqqir2YzAkd+qORAp7oyO4VXP/Jg4AjymHdOlZJYRIoLiJY/fu3cyaNYusrCxsNhslJSVUV1fHjtfV1eH3+yksLASgrKyM6upqQqEQNTU1lJSUdNkPUFNTg6ZpVFRUdLnXt771LUpLSwEYM2YMgUAAr9fLoUOHcLlclJWV8dBDD7F3797EvPp+ogfcRHQF1WTq93tH0keQrXQS8Hr7/d5CiBuTMV6BxsZGHA5HbNvpdHLw4MEejzscDhoaGmhtbcVut2M0GrvsB7jzzju58847eeedd7rc62KSAXjttde47bbbyMjIQFEU7rrrLr7//e/zxRdfsHTpUrZu3UpOTk6vX+jw4fZel+0rhyPjmseNES9erNhsVq4154jBaMBmM8e9X2/KWa0mstJsZObmQzv4XPWMGjM97rVTKd77OFAMhjglxsSQGLsXN3FomoaiKLFtXde7bPd0/MpywFXbPXnjjTfYvHkzb775JgAPP/xw7NikSZOYNm0aH330EXfffXevrgfQ0uJG0xI/UZTDkUFT07UnE9R9nfgVK15f4JpzVUXCEbzeYNx79qac3x+iLeDFOiyaXOuPfE7WqPFxr50qvXkfB4LBEKfEmBhDOUZVVa75ZTtuVVVeXh5NTZfqyJuamnA6nT0eb25uxul0kpOTQ2dnZ6wR+8rzevL888/z1ltvsXHjRvLz8wGorKzk9OnTsTK6rmNKQbXPl2UKewmoyZ/gsDs5juGEdJVQ05n+v7kQ4oYUN3HMnj2bPXv24HK58Pl8vPvuuxQXF8eOFxQUYLFY2L9/PwBVVVUUFxdjMpkoKipi27ZtQPTD//LzuvPGG2/w4Ycf8rvf/Y68vLzY/sOHD/P6668DcPz4cWpra7n99tv7/mpTxKz5CPfjPFWXMxgMtCrZmNzSs0oIkRhxq6pyc3NZtmwZ5eXlhEIhHnjgAaZNm8bSpUt5/PHHmTp1KmvWrOGZZ57B7XYzefJkysvLAVi1ahXLly9n/fr15Ofn8+KLL/Z4H13XeeWVV7Db7TzyyCOx/b/5zW947LHHePrppyktLUVRFJ577jns9uS1WSSaVffRbkpN4gDwWXLI9EviEEIkhqLregoqUPpfqto4IlqEzt/+T05kz6LVWXTNa00vHM/HB+KP8u5NuZlTR5EWiC4h+/mf/sCo1v1kLPlfGIwDsxvzYKhPhsERp8SYGEM5xutu4xDXx9cZneAQc3rKYjCmZ2JQdDpdzSmLQQhx45DEkWTetjYA1LTUJQ7rsEwAOpsbUhaDEOLGIYkjyXwX5qkyWlPXJpORlQ2AxyWJQwhx/SRxJFnAHU0cZlvqnjhyHNGxHKE2qaoSQlw/SRxJFnJHJzi02FM3AjXdbiOoG9E9rpTFIIS4cUjiSLKIL5o40jJSlzhUVaWTdFRfW8piEELcOCRxJJnudxPWVSzW/l3E6Uo+NR1LqD2lMQghbgxxBwCK66ME3XixMkzp3xytmtPwEW3b0HUTAXMWw/wn8QTCXcpZTEaM8vVBCNEHkjiSTA16CCjXnhU3GYIRnY8PnQXAZjMTiFgYi5eaQ3VgvPRnn3lbLkaL/DMQQvSefNdMMlPES1Dt/wWcrhQyZaAqEPZIO4cQ4vpI4kgys+YjbEx94tDM0XEkuld6Vgkhro8kjiSz6n60FE5weJFuHQaAIolDCHGdJHEkUUSLYCOAbk594lDToonD6JeqKiHE9ZHEkUTejk5URUcdAInDYLbg002Yg9IlVwhxfSRxJJG3vRUAgyX1bRwAHXo61lBHqsMQQgxykjiSKOB2A2C0DozE4VHSSdfcqQ5DCDHISeJIoqDfA4DJbE5xJFE+NZ0MJHEIIa6PJI4kivguJg5LiiOJ8hszyFD96OFgqkMRQgxikjiSKOz3AWC2DozEETZGx3JE3K0pjkQIMZj1KnFs3bqVefPmcc8997Bx48arjtfW1lJWVkZJSQkrVqwgHI7Oh1RfX8/ixYuZO3cujz76KB6Pp8t5b731FsuXL49tB4NBKioquPfee7n//vs5duwYALqu89xzzzF37lzmzZvH/v37v/QL7k9a0AuAdYAkjogl2iVX75R1OYQQX17cxNHQ0MDatWvZtGkTlZWVbN68maNHj3YpU1FRwcqVK9mxYwe6rrNlyxYAVq9ezaJFi6iurmbKlCmsW7cOgEAgwJo1a/jlL3/Z5TobNmwgLS2N7du38/TTT/PUU08BsGPHDo4dO8a2bdt45ZVXeOqpp2LJaSDTgxefOFI7M+5FSmYumq5gaT2W6lCEEINY3MSxe/duZs2aRVZWFjabjZKSEqqrq2PH6+rq8Pv9FBYWAlBWVkZ1dTWhUIiamhpKSkq67AeoqalB0zQqKiq63Gvnzp3cd999AMycOROXy0V9fT27du1i3rx5qKrK2LFjyc/P5+OPP07MO5BEeshPSDdgMhpSHQoARksa9foIHL4TqQ5FCDGIxZ0WtbGxEYfDEdt2Op0cPHiwx+MOh4OGhgZaW1ux2+0YL8zEenE/wJ133smdd97JO++8c817ORwOzp8/T2NjI06n86r9fTF8ePLW/HY4ul+kyagFCWAiMzMNTTNhs127d5XBaIhbprflrixz8fdm62imBT6iXQliSh+GzWbBkZP6AYrQ8/s40AyGOCXGxJAYuxc3cWiahqIosW1d17ts93T8ynLAVdtXuvIcXddRVbXbe6hq39r1W1rcaFripzZ3ODJoaurs9pgW8BLETFubB7/ZjNd77d5MkXAkbpnelru8jM126d6hjJtQg/txH/sE47iZeL0BmiKRuPdMtmu9jwPJYIhTYkyMoRyjqirX/LId99M3Ly+Ppqam2HZTU1OXb/9XHm9ubsbpdJKTk0NnZyeRCx9KV57XndzcXBobG6+6Vl5eXrf7Bzo14iekmPt7KY5rMmbl49NN2FuPpDoUIcQgFTdxzJ49mz179uByufD5fLz77rsUFxfHjhcUFGCxWGI9naqqqiguLsZkMlFUVMS2bdsAqKys7HJed+bMmUNVVRUA+/btw2KxMHLkSIqLi9m6dSuRSIRTp05x8uRJpk6d+qVfdH8xRAKEVQsDKXMoBiNnyWdk6DS6pqU6HCHEIBS3qio3N5dly5ZRXl5OKBTigQceYNq0aSxdupTHH3+cqVOnsmbNGp555hncbjeTJ0+mvLwcgFWrVrF8+XLWr19Pfn4+L7744jXv9cgjj7By5Urmz5+P2Wzm+eefB2Du3LkcPHgw1nD+7LPPYh0gPZWuxaQF8ZsGXh1pa9pobvWfJtzWAOSnOhwhxCCj6Lo+cL4OJ1Eq2jhO/38/ot1awG3fWojPkkPNhaVcezK9cDwfHzh6zTK9LXd5mcvbOADCnS7+7NxGajK+yR1li0gfAEvHDob6ZBgccUqMiTGUY7zuNg7x5ZkJoRsHxuC/yxkzcmjRMsjulPEcQoi+k8SRRBaC6IaBMcHhlc4b8inQ69HCqe9RJYQYXCRxJEkwEMCoaCimgffEAdBpG0WaEqLh2OFUhyKEGGQkcSSJ3xOdvnygJg49ezQAnScOpTgSIcRgI4kjSQIXEoc6QBOH0ZZBkzYMc8sXqQ5FCDHISOJIkoA3OhOwcYCsxdGd84aROEN1hMOhVIcihBhEJHEkSch3MXEMzMZxALetAKsSov5wbapDEUIMIpI4kiR0cRGnAZw4yIm2c7Qd+yTFgQghBhNJHEkS8UcXcTIO4BHuxjQ7TXoWpiZp5xBC9J4kjiSJBC6u/jdwEwdAe/oYnOF6QiFZh1wI0TuSOJJEC1yoqkobuI3jAErWSMxKmI6mxviFhRACSRxJo4d8RHQFsyn180BdiykjG4DO5oYURyKEGCwkcSRLyE8AE2qcxatSLS1rOAA+V1OckkIIESWJI0mUkJ8gZgb63MMZOTkAhDuaUxyJEGKwkMSRJLHV/wbQIk7dsdps+HQTuseV6lCEEIPEwK6AH8QMkcCFZWMHduJQzWl0Ykf1teEJhHssZzEZMcrXDCEEkjiSxqgFCKkDuysuQDCi48aGNdhBTW3PDeQzb8vFOAAWfBJCpJ58h0wSkx5EMwzsrrgXeVU7GbhTHYYQYpCQxJEkJj2INgBX/+tOwGgnQ/Wjh2UQoBAivl7VPWzdupX169cTDof57ne/y+LFi7scr62tZcWKFXg8HoqKili9ejVGo5H6+noqKipoaWlh7NixrFmzhvT0dDo6OnjyySc5c+YMOTk5vPTSSzgcDn7wgx9w7tw5ADRN48iRI7z99ttMnDiRO+64g5tuuil2z3feeQeDwZDAtyKxoqv/DfEXrAoAACAASURBVI7EETbaIQQRdyvGrNxUhyOEGODiPnE0NDSwdu1aNm3aRGVlJZs3b+bo0aNdylRUVLBy5Up27NiBruts2bIFgNWrV7No0SKqq6uZMmUK69atA+Cll16iqKiI7du38+CDD/Lss88C8Oqrr1JVVUVVVRV33303Dz30EFOnTuXw4cNMnz49dqyqqmpAJ41IOIJFCcMAXYvjShHLsOgvntbUBiKEGBTiJo7du3cza9YssrKysNlslJSUUF1dHTteV1eH3++nsLAQgLKyMqqrqwmFQtTU1FBSUtJlP8DOnTtZsGABAKWlpbz33nuEQpfWhDh+/DiVlZX87d/+LQCHDh3C5XJRVlbGQw89xN69exP08pPDf2EtDnWQVFVhtQOgeKVLrhAivriJo7GxEYfDEdt2Op00NDT0eNzhcNDQ0EBrayt2ux2j0dhl/5XnGI1G7HY7LtelD61169axZMkS7PYLH2iKwl133cXmzZv52c9+xrJly7qUH2hiq/8N5CnVL2NIiz5xGAJtKY5ECDEYxG3j0DQN5bJpM3Rd77Ld0/ErywFXbV9+jqpGc1h7ezvvv/9+rPoK4OGHH479PmnSJKZNm8ZHH33E3XffHS/8mOHD7b0u21cOR0aXbU+zhgak2dPJyrIBoOsmbLZrJxKD0RC3TG/LXVmmp/IGowF7ph2vbsYa6sRk774Lsc1mwZFjixvb9bjyfRyoBkOcEmNiSIzdi5s48vLy2LdvX2y7qakJp9PZ5XhT06V5jpqbm3E6neTk5NDZ2UkkEsFgMHQ5z+l00tzcTF5eHuFwGI/HQ1ZWFgC7du2iuLgYi+VSNU9lZSUzZsxg9OjowkO6rmMymfr0Qlta3Gha4gfjORwZNDV1dtnXfL6ZHCCiGWhri06v7rdY8Xqv3WspEo7ELdPbcpeXsdnMPZa/WK5DT8cSaqfd7e+2nNcboCkSiRvbl9Xd+zgQDYY4JcbEGMoxqqpyzS/bcauqZs+ezZ49e3C5XPh8Pt59912Ki4tjxwsKCrBYLOzfvx+AqqoqiouLMZlMFBUVsW3bNiD64X/xvDlz5lBZWQnAtm3bKCoqiiWCAwcOUFRU1CWGw4cP8/rrrwPR9o/a2lpuv/32Xr8J/e3isrEmc9+SWyp5lHTSdRnLIYSIL27iyM3NZdmyZZSXl/Ptb3+b0tJSpk2bxtKlSzl06BAAa9as4Ve/+hVz587F6/VSXl4OwKpVq9iyZQvz5s1j3759/PjHPwbgiSee4MCBA8yfP59NmzaxcuXK2P3OnDlDbm7XLqGPPfYYLpeL0tJSnnjiCZ577rlY+8dAFL6wbKxpgC/idDmfaidDEocQohd6NY5jwYIFsV5QF/32t7+N/T5x4kTefvvtq84rKChgw4YNV+3Pysri1Vdf7fZel1/3Irvdzssvv9ybUAeE8IVlY83WQdKrCggY07HrAbRQAHWQdCMWQqSGjBxPAn2QLBt7uZAp2sCmdcpYDiHEtUniSAItFK2qslgHR3dcAM0STRy6jOUQQsQhiSMZgn4CuhGDOnBHt1/lQuJQffLEIYS4NkkcSaCEfQQY+Is4Xc5gGxZdI90rS8gKIa5NEkcSKOEAIcWEPsAXcbqcajRxXh9Ojv9sqkMRQgxwkjiSILr6n2XAr/53pWZjHvk0oMn06kKIa5DEkQQGLUBYHTwN4xd50wswKRqRxhOpDkUIMYBJ4kgCkxYgog6+sRBKdgEAJtfxFEcihBjIJHEkgUkPohsG3xOHwZpOo5ZJlvdUqkMRQgxgkjiSwMzgWTb2So2GfEbq59G05E1oKIQY3CRxJJimaVgIwSBNHG7bSNKUEJHmM6kORQgxQEniSLBgwI9B0VGMg6+qCkDPGgWAsflonJJCiKFKEkeCBdwXVv8bpBMFGtMzadXSGeaRdg4hRPckcSRYbL3xQZo4AOoMoxinnSTYIN1yhRBXk8SRYMELicNgGTwz416p86Y/x61bmXDiX4j4ZI0OIURXkjgSLOQdfKv/XcloTeczRwmZiofsT/8FXdNSHZIQYgCRxJFgoQuLOJnMg/eJA8A0fBQfW7/GrfoJQueOpDocIcQAIokjwSIXFnEyWwZnr6rLhRy3AWDqqEtxJEKIgUQSR4JFAtFFnKxpg/uJA6IjyX26CatPploXQlzSq8SxdetW5s2bxz333MPGjRuvOl5bW0tZWRklJSWsWLGCcDgMQH19PYsXL2bu3Lk8+uijeDzR+v+Ojg6+973vce+997J48WKamqIfTHV1dUyfPp2FCxeycOFClixZAkAwGKSiooJ7772X+++/n2PHjiXkxSeDHowmDvMgWja2J4qq4tIzsYdbUh2KEGIAiZs4GhoaWLt2LZs2baKyspLNmzdz9GjXwWEVFRWsXLmSHTt2oOs6W7ZsAWD16tUsWrSI6upqpkyZwrp16wB46aWXKCoqYvv27Tz44IM8++yzAHz66acsWLCAqqoqqqqqeO211wDYsGEDaWlpbN++naeffpqnnnoqoW9CIulBH2FdxWwypjqUhGhXs8nRZFVAIcQlcRPH7t27mTVrFllZWdhsNkpKSqiuro4dr6urw+/3U1hYCEBZWRnV1dWEQiFqamooKSnpsh9g586dLFiwAIDS0lLee+89QqEQhw4d4siRIyxcuJDy8nIOHz4cK3/fffcBMHPmTFwuF/X19Ql8GxIo7CeAicG0+t+1eE3ZDFN9+Do7Ux2KEGKAiJs4GhsbcTgcsW2n00lDQ0OPxx0OBw0NDbS2tmK32zEajV32X3mO0WjEbrfjcrmwWCzcd999/P73v2fJkiU89thjBIPBbu9x/vz563zpyaGG/QQxD6rV/64lZM0BoPXsydQGIoQYMOLWp2iahqIosW1d17ts93T8ynLAVduXn6OqKj/60Y9i++bMmcMLL7zA8ePHr7rWxfJ9MXy4vU/l+8LhyIj9btSChFQzWZk2Ln/q0HUTNtu1e1oZjIa4ZXpb7soyPZWPd63AcCd0QqDlLA5HcdzYrsfl7+NANhjilBgTQ2LsXtzEkZeXx759+2LbTU1NOJ3OLscvNm4DNDc343Q6ycnJobOzk0gkgsFg6HKe0+mkubmZvLw8wuEwHo+HrKwsNmzYQGlpKdnZ2UA0QRiNRnJzc2lsbGT06NFd7tEXLS1uNC3xTwEORwZNTZeqcZSwj7Bipq3N06Wc32LF6732kqyRcCRumd6Wu7yMzWbusXy8a2lGO2FdJdRc1+V1JtqV7+NANRjilBgTYyjHqKrKNb9sx/3aPnv2bPbs2YPL5cLn8/Huu+9SXHzpm2dBQQEWi4X9+/cDUFVVRXFxMSaTiaKiIrZt2wZAZWVl7Lw5c+ZQWVkJwLZt2ygqKsJkMlFTU8Pbb78NwN69e9E0jXHjxjFnzhyqqqoA2LdvHxaLhZEjR36Z9yPpjJEg4UG4+l9PVNVAiz4Mk6chfmEhxJAQ94kjNzeXZcuWUV5eTigU4oEHHmDatGksXbqUxx9/nKlTp7JmzRqeeeYZ3G43kydPpry8HIBVq1axfPly1q9fT35+Pi+++CIATzzxBMuXL2f+/PlkZGSwZs0aAFasWMHy5cupqqrCYrHwwgsvoKoqjzzyCCtXrmT+/PmYzWaef/75JL4lfdPpDeIJhGPbJj2A15CDz5LTpZxuGrzdc9vULBwh6ZIrhIhS9BulFTeOZFVV6QYDu/afjm1/5YO/45RpHL5b7upSbnrheD4+cO01LnpT5stc61pVVb25luH4nygMHSDtu+uTNj5lMFQLwOCIU2JMjKEc43VXVYm+sSohIurgn27kcgFLDqqi03z2dPzCQogbniSOBNLDYUxKhMgN1MYBoNuGA9BxThKHEEISR0JpF6Yb0dTBO6V6dwz2bDQdgrIOuRACSRwJdTFxRIw31hOHajLTTgZKx7lUhyKEGAAkcSRSKJo49BusjQOgw5hDeqA51WEIIQYASRwJpIf80f8abqyqKoCgzUm23kYoFH+AohDixiaJI5EuPHFguPGeOAxZuRgVjZaz0s4hxFAniSOBlHD0iQPTjdXGAWBzREfqt9WdSHEkQohUk8SRQGo4AIBiuPESR05+QbRnVZN0yRViqJPEkUDqhScOxXzjVVWZrVbayEBtl55VQgx1kjgSyBAJoOmgGm6M1f+u1GnMIT0o648LMdRJ4kggQyRAABOKcmO+reG04WTr7YSC0rNKiKHsxvyESxGDFiCg33hdcS8yZTowKDrNZ06lOhQhRApJ4kggkxaILht7g6w3fqWMEdHFs6RnlRBDmySOBDLqQYKKmRs0bzAi10FEV6RnlRBDnCSOBDLrQULKjdej6iKz2UQbwzB0Ss8qIYYySRwJdKMnDoBOYzZ2mbNKiCFNEkcCmQkRvsETR8Q2gmw6OHGgJtWhCCFSRBJHAlmUIOEbcGbcy42aVoSLTLI+XM/n//WfqQ5HCJECvUocW7duZd68edxzzz1s3LjxquO1tbWUlZVRUlLCihUrCIfDANTX17N48WLmzp3Lo48+isfjAaCjo4Pvfe973HvvvSxevJimpuigssbGRpYsWcLChQu5//772bNnDwChUIgZM2awcOHC2E8kEknIG5AoWjhEmhIifANON3K5rOxMcv7iOzQqDvI/e5ODm16i4ZT0shJiKImbOBoaGli7di2bNm2isrKSzZs3c/To0S5lKioqWLlyJTt27EDXdbZs2QLA6tWrWbRoEdXV1UyZMoV169YB8NJLL1FUVMT27dt58MEHefbZZwF4/vnn+eY3v0lVVRUvvPACTz75JJFIhMOHDzN9+nSqqqpiPwaDIdHvxXWJeNoACJt6XuD9RpFuT2fUtxZx0jaFUZ0HsVav5pN/eSXVYQkh+kncxLF7925mzZpFVlYWNpuNkpISqqurY8fr6urw+/0UFhYCUFZWRnV1NaFQiJqaGkpKSrrsB9i5cycLFiwAoLS0lPfee49QKMS3vvUtSktLARgzZgyBQACv18uhQ4dwuVyUlZXx0EMPsXfv3sS+Cwmge9sB0EzpKY6kf1gsZibfNR+Kf8Ap6wTGddRwpvbTq8pFwhE8HR0piFAIkSxxE0djYyMOhyO27XQ6aWho6PG4w+GgoaGB1tZW7HY7RqOxy/4rzzEajdjtdlwuFyUlJWRmZgLw2muvcdttt5GRkYGiKNx1111s3ryZn/3sZyxbtgyXy5WAl584ij/6xKGbh0biuGhYZgZj/7wEr26m44P/3eVY/bEjHP+np/D87kk8He0pilAIkWhxZ+PTNA1FUWLbuq532e7p+JXlgKu2Lz9HVS/lsDfeeIPNmzfz5ptvAvDwww/Hjk2aNIlp06bx0Ucfcffdd8cLP2b48ORUITW6vGTYrXjC0fYba2YWZtvVDeQGowFbN/v7WubLXqun8r29p9VqIivN1u2xrCwbHzqKGN28m7azR7l58mT2bHqNvLP/BxMGrEqIxtp9fK3029e8h8ORETeOgWAwxCkxJobE2L24iSMvL499+/bFtpuamnA6nV2OX2zcBmhubsbpdJKTk0NnZyeRSASDwdDlPKfTSXNzM3l5eYTDYTweD1lZWUC0nWPXrl1s3LiRvLw8ACorK5kxYwajR48GoonGZOrbnFAtLW40LQlDug0GOt1+VG8bEV0hhImw9+pJACPhCN5u9ve1zJe5ls1m7rF8b+/p94doC3h7PD56WhHeP+yjrfo1WraFGEUzJ9MmMPrO+XT+x3o8tR/QdMddPZ7vcGTQ1NQZN45UGwxxSoyJMZRjVFXlml+241ZVzZ49mz179uByufD5fLz77rsUFxfHjhcUFGCxWNi/fz8AVVVVFBcXYzKZKCoqYtu2bUD0w//ieXPmzKGyshKAbdu2UVRUhMlk4o033uDDDz/kd7/7XSxpABw+fJjXX38dgOPHj1NbW8vtt9/e1/ciqczhTtx6GuoNOjOuak7DZ8np8YfsAs4Nn8lI7RxpuodzEx5i0j1lpFtNNKWNJS9wgqDfn+qXIYRIgLhPHLm5uSxbtozy8nJCoRAPPPAA06ZNY+nSpTz++ONMnTqVNWvW8Mwzz+B2u5k8eTLl5eUArFq1iuXLl7N+/Xry8/N58cUXAXjiiSdYvnw58+fPJyMjgzVr1qDrOq+88gp2u51HHnkkdv/f/OY3PPbYYzz99NOUlpaiKArPPfccdvvA6r2UFnHjVtJv2AkOgxGdjw+dvWaZwtklnNyXxs1TvorTakTXNADSCr6C5dhnnDpQw62zvt4f4QohkqhXKw4tWLAg1gvqot/+9rex3ydOnMjbb7991XkFBQVs2LDhqv1ZWVm8+uqrV+2vqel5NPLLL7/cm1BTxqa5cavDbtgJDnvDZLFwW9HVT4I3jb8F91ETvqN7QRKHEIPejblUXQrY8dJsyE91GCmlmtPwkXP1AQvUm8fi9HxBpydAWpoF441ZoyfEkCCJIwG0cBC7GiBoHFjVZ/3tWtVZEctoxoWOsGfnn/jzu+dgtET/6TWdPU2mIxcY+L1XhBBRkjgSIOKJjlEIm+x03+FY4BiHr9OEs24XMAeAz/7wb9x07G28usKHag6h2+Yx4c6ee14JIQYGqTBIhAvTjURM3Y9zEGAwWfjUMoNbOM3pjz+ks62VnKNbOa84OJU1E7PmR62tjn8hIUTKSeJIBP+FUdFDbNR4X2mjpuPS7JgPvsOJf3sdK0HSZ97P5K//Be3OQvL0Jlobzqc6TCFEHJI4EsAQiCYOxSr19NeiGk0czrgDJy2M9R7iVObtOHOjjekFEyYDUHdgdypDFEL0giSOBDAGO4noCgaLNdWhDHiG/InUKfm06XYKiu/DZ87GZ8kh7aav0KIPQzn7CZ5AmLCW6kiFED2RxvEEsIQ66dTTUBQVXR/CAzl6QVFVcu5bxsGDx1CPXJqqxmYzEzaOZnL4Mz44cJJZhTfHel4JIQYWeeJIAKvmxqOkS9LoJZPFgmq6emJFT+YtGBUNve7q6dmFEAOHJI4ESNc8eBVpGL9ehpwCPJqFYa7PUh2KEOIaJHEkgF3xEjBI4rheqmrglHoTYyInCfp9qQ5HCNEDSRzXKej3ka7IqPFEacuZjE0JcvK9f0t1KEKIHkjiuE6dzc0AhIfIkrHJZhoxmpNaPrn17+H39bz+hxAidaTbynVyu5qwABGTXd7MBKkfcQc3uyr54g9VTC39v69Z1nWunrN7/4Ae9IEewVn0LfLHje9Spr2pkdMfvY/tpq+Qd8uEHq9lMRkH9eSLZ2o/xfXJe/zZ/3gs1aGIG5x81l0nX2v0iQOLTDeSKKYRN3GmbRQj6nbh8ywgLb37asDOtlY6//XvGat0ENajn/iR/9jPZxMfYPwd3+B4zZ/QvnifkaGT3KzoBE8a2H14Iaax3S8CNvO23EHbBfjEJ/vJ+GA945Qw+9c3Mv47T2PqpueaEIkwiL9fDQzBM58S1A2o6dmpDuWGYphyD3bFT/ubT/LJpl9zprZrF91QMEjd2/8vGbhxTf8fDFu4nMid36dFHc5Nh/+F9n/+EQW1bzIs1MjpnDs4V7iUJj2brzW+g/7Zf6BpkRS9ssQ7tv8Dhn2wHrdi58TwP2dU6CS1m19G02QUpUiOwfn1aoAIhYLkdtRyQr0Z1SBvZSKNvHUC57xlBE4dZFTnQcz/9TGH9k4ge9ZC3I3n0L74Ezdp9Zwe/wCjx92GF7DkZZJ73+N8sevfUf3tWG65nZETJpGpKOgmK3vbVbwntlPk3knj3gMcd3wd3ZiOwe8iYs1Bm+DoMZ5IOELd4c9Imz6Zy79vBXw+jvxxKxln38drzCH9jm8zZvJXu5zr93jRdA1bElatbDpzimH7XqNdGUbOXd9lVJqZz3dHGOv6gE+3bmTawkfiX0SIPpJPu+tw6kANuYqftqyJ8uiWBOMm3goTb8Xn83N8325GtX2MedfzZAIB3cjJvL/g5sKvUXPoTNcTnReqokJw7tM6AKYXjkc1mWkdv4APGo4wrr2GWS1bL53TDuc3/IFzU0sZf8fXUdXoXzQYCHBk13bsJ/7IcKWds38yUmebAHYHSsc5hvtPc7Pi45ySS06onvT31/L5BwUEc6dgLxhP5+d7KOg4iAGNU8YCIgWFTLz7PoxG03W/P8FAgPbt/0gGChlzFmMbnosvonBryQMcfruF0ef/D18cmMLI26Z2OW+wt+WI1JPEcR28n+/Bp5tRht+c6lBuOF1WE7TAuLsfoKPlLzhz+BPSnKPJHTuOmw0qusnSp+sqqoohfyIncm/lWMsZMJjBakd1neZWzz5yDv0Txw79G/4JJYRbz+Ns2M0Yxct5xcGxUaUortPkez7H4v1v2sigxVxAx8RiCr4yEb/Xwxd7d5Ld/AkF9TugfgfZusoZ223opjSGdRxlxOmtfPHPnzDq//obMrKyehVzKBjk1KGPMFnSyLvlK1jS0vD7vByu/F+Mo4lzEx5kXIYNX0Sh5tBZbDYznSO/QdaJeswfvM4HgR9hsFzq9TeY23KSzet2c/Q/30HXNfJuK2TYTeN7bGMbyuRfz5cU9PvJ9x7mnO0rKKp8fUu0HlcTzPgK+KDus3og+iTxZaiqAdVx86UdtimkTy7lw3f/jVs795F3+E0ATigFfDaiBEN2ASgKthETUMY+Qs3B4xiMpug0MwGov/jUM3wabcOnYb4pE9eJz3GMn8jYjEuzJh/74D3GnN2Oa/NPOXbTN7CNyENVwHPmMIaOc0SsWRhHjMZgsRH2thNxnSW34zNyFT8AvvcV2jBhU4KMA45m3M74qTPxoaObLk2yabBYqR3xLWa1VJFzcBPNE+7HNGzEl3qv+oumaUTCYUzm/m/U1zSNw//1Hwz7vIqxihdNB7VpJ526mdOT/1IWGLtCrxLH1q1bWb9+PeFwmO9+97ssXry4y/Ha2lpWrFiBx+OhqKiI1atXYzQaqa+vp6KigpaWFsaOHcuaNWtIT0+no6ODJ598kjNnzpCTk8NLL72Ew+EgGAyyYsUKPv30U6xWK2vWrOGWW25B13Wef/55/vjHP6KqKn/3d3/H7bd33zOmv5zYv5uRSgjr+JkQSGkoIkEMJiNqwRSORiaiNZ9AT8vClOnEcMUcZEaTGdVgvObcZLbhDg6faafpZDvQfulA+jgaHAuZ1LiDW85uhQu5UdOhjWHYA8cxd9TEiod0lXrLLbTcfDv1DW1YvE2YND8BYwahtGxU5y2xqrork6hpxE3s99zBDP+H3Fz7aw4bJ9I5fBKe/DtIz73UnhMKBmk4cZTO82cItjag6BrW3DHkjB5PxvARWNLS0DQNb2cHIb8fe07OVT22PB3tNB7/gpDPQyToxzIsh7xbb8Nmt6NpGu5WF3Wf7id0+hCmYBufmW2EFSu6agBFxeRzkR06h13x06jbcKuZ+NJyYfhNqGYb4fYGVK8L0FEUFTXnJsZ87RsMGx4/GWqaRuv587ScPkqgLTqxpqKoGG0ZmIfl0H76CNn1exiltHNeceCdUc4wh5O2s8dR/nsHIz/bwCdnPuPWBX913e1UkXCE+i9qCXjdqCiY0zNwjr0Fs6VvT86pFjdxNDQ0sHbtWt555x3MZjMPP/wwd9xxB+PHX/pHWlFRwS9+8QsKCwt5+umn2bJlC4sWLWL16tUsWrSI+fPn88orr7Bu3ToqKip46aWXKCoq4je/+Q2VlZU8++yzvPTSS2zYsIG0tDS2b99OTU0NTz31FFu2bGHHjh0cO3aMbdu2cerUKb7//e+zbds2jMbUPDDVHzuC+lk1bt3KTZMmc/bj0ymJQySHYjBiyL0VICkTV5pyRnEk66+IBDyMGW5CC4UYMeZmctJsaJEwLQ2NhMNB0jKGkT4skzEGFd1kpeGjo4S5lfCF6xh6c7MxM9nruRX7uf1MDB/G1PgZVL1NvZ6GT0lDR2W47iJT0ci8cEr02zbwKQQBt25ARceoaBgBrw4e0ggoVkKKGbMeYDhtXPkRHtoLddiw4ceoaIwCvLqFNjUbs68Jsx5ARcOAhltJpyHtFr7Q0jCH3WRE2sj3fIbNeyB2vU4tDQ0Fg6Jh93xC5PS/87lxJIGMmzANH4UWChDxtKL42jEG2rFE3Fh1P2n4MSsa+T28RQ7gLE4+HPYtlLwJKG4F3K3YbLm4b3mAxpN/4qud+/FsPMgXmV8lc9JsskeOJiMnJ9YWBtEE7G5txdvuIuDuRNc1FEUl6Okg2FKP0l6H03+CLCXY5f6eXSqnlRwCpmFETDZ0sx3Fasdgy8LmyCenYMxV90q1uJ+8u3fvZtasWWRdqI8tKSmhurqaH/7whwDU1dXh9/spLCwEoKysjJdffpkHH3yQmpoaXnnlldj+73znO1RUVLBz5042btwIQGlpKT//+c8JhULs3LmTJ554AoCZM2ficrmor69n165dzJs3D1VVGTt2LPn5+Xz88cfMnDmz1y9UVfu+GvjpQx/hbTgDuoauhSHox+hzMTJyBluGiZZR3ybXasZmi78Oh9FoiFuuN2W+zLXS0kz01PM6Wffsa7krY0xkXL0t15syaWmmxL0XdhsjJ43hvz87RXu9B/BcOGCK/rgi4HIBMHnSmF7f86q/ty0PHPM5HLmHSGcTOXQQam+KLteLxgnTFALWEWjWTFTbMNB1RmYq+Jrq0ANeCPpAVcFsRzEa0Hxu1KAbQziAQQ8SxsiZYflYcvIxpaWhmi0E2loJtNSh+jvoMKWh2oZhdYxixKjRDFMVLBYjgUAYiP5/mQHkGc0c/PQUAJ1Ap64R8bvRI2GMtmEoBiM68NUJeXSeOUrryS9Id59hpHYCU/MxADRdwWu04jXb8OjDcRssRBQLQfMwImnDUSwXnhh0DT3kx5llprE9iDFjOPYrviPE3sepc3GlfYPgFx8yLngKY+3voBY8ukoIAxGMmAhjUUJYgZ7+Sp0WG21ZM///9u4/pqr6j+P4k8u9F+TL1eIb11+QitHal1xzUcvmAN23k8xungAACaBJREFUq3khV7HJKrTRrDUX/VEZ1yy3Am03VgrU1mq1uZiz5YJdwrS1VZvdUbrSUZCGoSgoAhI/doH74/P9o6/XhHvFc7/3cs/2fT/+wXvuuffz4r0z3pzD8X0ZmbsUQ3IqKIV3bATfQA9JnkvM9ntIUsMkB/owefzgAfqBdhhSJoYMs5lITEUZElEGIyQY6DCZ8QUSIDERDIkkJPz1lQQDJMA/5meR+a9lYRKFN93Py2kbR29vL+npV09rrVYrJ06cCPt8eno6Fy9e5PLly6SmpgbPCq5sn/wao9FIamoqAwMDId/rwoUL9Pb2YrVap2zX4uabtY8E+WdB3nWfz/7v16KMjBt6v6wl4X7n0bZPPN4rHmtK/titqVeLFt1g/qWLgX/HMspUqwtmdj0dm/bcJxAIkJBwtfsopa55HO75yfsBUx7//TUGg2HKa65sD7WGnk7bhBDi/8m0P33nzZvHpUtXP6nt0qVL1/z2P/n5vr4+rFYraWlpDA8P4/f7p7zOarXSd2U4oM/H6OgoN910E3PnzqW3t3fKe82bNy/kdiGEEDNv2sZx//3343a7GRgYwOPxcPjwYfLyrl7CWbhwIUlJSRw7dgyAxsZG8vLyMJlM5Obm0tzcDEBDQ0Pwdfn5+TQ0NADQ3NxMbm4uJpOJ/Px8GhsbATh69ChJSUksWLCAvLw8XC4Xfr+fM2fO0NnZybJl2q/bCSGE+N8lqBu4bcTlcvH+++/j9XopLi5m8+bNbN68mfLycpYtW0Z7ezvbt29nZGSEnJwcdu3ahdls5vz581RUVNDf38/8+fN5++23mTNnDoODg1RUVNDV1YXFYqG6upqMjAzGx8d57bXXaG1txWw2U1lZSU5OTvB23O+++w4Ah8PBypUrY14cIYQQU91Q4xBCCCGukL8wCyGE0EQahxBCCE2kcQghhNBEGocQQghNpHFEyOVysW7dOmw2W3B8SjyVlpZit9tZv34969ev5/jx42Ezfv/99xQVFWGz2XjnnXdimmtkZITCwkLOnTt33bXb2tp45JFHWLNmDa+88go+318Tmbq7u3n88cdZu3Ytzz77LKOjoyHXiXZOh8OBzWYL1vOrr76KKH+01NXVYbfbsdvtOJ3OiLLEupahMuqtjnv27GHdunXY7XY+/vjjiLLMxDEZKqeuaqmEZhcuXFCrVq1Sly9fVqOjo6qoqEidOnUqbnkCgYBauXKl8nq902b0eDwqPz9fnT17Vnm9XlVWVqa++eabmOT6+eefVWFhocrJyVFdXV3XXdtut6uffvpJKaWUw+FQ9fX1Simlnn76adXU1KSUUqqurk45nc6Y51RKqcLCQnXx4sVr9oskfzQcOXJEbdiwQY2Pj6uJiQm1ceNG5XK5dFXLUBkPHz6sqzq2tLSokpIS5fV6lcfjUatWrVJtbW26qmO4nB0dHbqqpZxxRODvgx9TUlKCgx/j5fTp0wCUlZXx0EMP8cknn4TNeOLECRYtWkRmZiZGo5GioqKYZf/000/ZsWNH8H/5h1s71KDML7/8Eq/Xy48//siaNWuu2R7rnB6Ph+7ubrZt20ZRURE1NX99frfW/NGSnp5ORUUFZrMZk8nE0qVL6ezs1FUtQ2Xs7u7WVR3vvfde9u7di9FopL+/H7/fz9DQkK7qGC5ncnKyrmopH+QUgekGP860oaEhVqxYwauvvorX62Xjxo08+OCDITOGyn5l+GS0VVVVXfM43NqRDMqMZc6+vj7uu+8+duzYgcVi4ZlnnuGzzz4jJSVFU/5oyc7ODv67s7OTgwcP8sQTT+iqlqEy1tfX88MPP+imjgAmk4mamho++ugj1q5dq9tjcnJOn8+nq2NSzjgiMN3gx5m2fPlynE4nFouFtLQ0iouLqampCZkxntnDrR2NQZnRlJmZybvvvovVamXWrFmUlpby7bffas4fbadOnaKsrIytW7eSmZmpy1r+PWNWVpYu61heXo7b7aanp4fOzk5d1nFyTrfbrataSuOIwHSDH2fa0aNHcbvdwcdKKRYuXBgyYzyzh1s7kkGZsfTbb79x6NCh4GOlFEajUXP+aDp27BhPPvkkL7zwAg8//LAuazk5o97q2NHRQVtbGwCzZs3CZrPR0tKiuzqGytnc3KyrWkrjiMB0gx9n2vDwME6nk/HxcUZGRvj888956623Qma86667+OOPPzhz5gx+v5+mpqYZyx5u7UgGZcaSUoqdO3fy559/4vV62b9/Pw888IDm/NHS09PDli1bqK6uxm63A/qrZaiMeqvjuXPn2L59OxMTE0xMTPD1119TUlKiqzqGy3nPPffoqpYyqypCoQY/xtPu3bs5dOgQgUCAxx57jE2bNoXN6Ha72bVrF+Pj4+Tn5+NwOGJ6CWj16tXs3buXjIyMsGtrHZQZ65z19fXU19fj8/mw2Wy8+OKLQPjahcsfDZWVlRw4cIBbb701uK2kpITFixfrppbhMgYCAd3UEaC2tpaDBw+SmJiIzWbjueee0+UxGSqnno5JaRxCCCE0kUtVQgghNJHGIYQQQhNpHEIIITSRxiGEEEITaRxCCCE0kcYhRBzs2bOHhoaGeMcQIiJyO64QQghNZMihEFHU0tJCdXU1CxYs4PTp0yQnJ/Pmm2/ywQcfMDg4SFdXFwUFBfT395Odnc1TTz3F8ePHqaysxOPxYDKZ2Lp1KytWrKCjo4OqqioGBwfx+/2UlpZSXFwc729RCGkcQkRba2srL7/8Mrm5uezbt4+XXnqJ22+/nbGxMb744gsAKioqAPB6vWzZsoXKykoKCgpobW3F4XBw4MABysvLcTqd5OTkMDw8zIYNG7jtttuCo7KFiBdpHEJE2R133EFubi4Ajz76KK+//jpWq5W77757yr4nT57EYDBQUFAAwJ133onL5eL333/n7NmzbNu2Lbjv2NgYv/76qzQOEXfSOISIssTExCnbDAYDKSkpIfedPCfs5MmTKKWwWCw0NjYGt/f19WGxWKIfWAiN5K4qIaKsvb2d9vZ2APbv38/y5cuZPXt2yH2zsrJISEjgyJEjAPzyyy9s2rSJJUuWkJycHGwcPT09FBYW0traOjPfhBDXIWccQkTZLbfcwu7duzl//jxpaWk4nU7q6upC7ms2m6mtrWXnzp04nU5MJhO1tbWYzWbee+89qqqq+PDDD/H5fDz//PMhL3cJMdPkdlwhoqilpYU33niDpqameEcRImbkUpUQQghN5IxDCCGEJnLGIYQQQhNpHEIIITSRxiGEEEITaRxCCCE0kcYhhBBCE2kcQgghNPkPvy4zd9O5zNsAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,ax1=plt.subplots(1,1)\n",
    "sns.distplot(data.query(\"price<=3500\")[\"price\"],ax=ax1,bins=30) #面积分布情况（直方图 ）\n",
    "sns.kdeplot(data[data[\"price\"]<=3500][\"price\"],shade=True,ax=ax1)#生成核密度图"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "分析：整体上，价格比较集中，主要聚集在100-600之间， 最大值为68983可能为异常值，值得注意。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.813393Z",
     "start_time": "2019-11-03T13:04:31.837Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"a3e2326e73894acea3d261b005fb87ee\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_a3e2326e73894acea3d261b005fb87ee = echarts.init(\n",
       "                    document.getElementById('a3e2326e73894acea3d261b005fb87ee'), 'white', {renderer: 'canvas'});\n",
       "                var option_a3e2326e73894acea3d261b005fb87ee = {\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u4ef7\\u683c\\u5747\\u503c\",\n",
       "            \"data\": [\n",
       "                1589.7779111644659,\n",
       "                1238.9860724233984,\n",
       "                1174.803675048356,\n",
       "                1172.2657342657342,\n",
       "                966.9625668449198,\n",
       "                751.5855263157895,\n",
       "                712.4085475194262,\n",
       "                679.1502590673575,\n",
       "                667.9717391304348,\n",
       "                587.9870664315109,\n",
       "                489.5419198055893,\n",
       "                484.395282146161,\n",
       "                456.4610572411636,\n",
       "                405.5480620155039,\n",
       "                403.05164319248826,\n",
       "                384.63139931740614\n",
       "            ],\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"show\": false,\n",
       "                \"position\": \"top\",\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"label\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"inside\",\n",
       "                    \"color\": \"#fff\",\n",
       "                    \"margin\": 8\n",
       "                },\n",
       "                \"data\": [\n",
       "                    {\n",
       "                        \"name\": \"\\u6700\\u5927\\u503c\",\n",
       "                        \"type\": \"max\"\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u6700\\u5c0f\\u503c\",\n",
       "                        \"type\": \"min\"\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u5e73\\u5747\\u503c\",\n",
       "                        \"type\": \"average\"\n",
       "                    }\n",
       "                ]\n",
       "            },\n",
       "            \"rippleEffect\": {\n",
       "                \"show\": true,\n",
       "                \"brushType\": \"stroke\",\n",
       "                \"scale\": 2.5,\n",
       "                \"period\": 4\n",
       "            }\n",
       "        },\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u4ef7\\u683c\\u4e2d\\u4f4d\\u6570\",\n",
       "            \"data\": [\n",
       "                899.0,\n",
       "                678.0,\n",
       "                597.0,\n",
       "                550.0,\n",
       "                490.0,\n",
       "                450.0,\n",
       "                379.0,\n",
       "                369.0,\n",
       "                356.0,\n",
       "                336.0,\n",
       "                329.0,\n",
       "                329.0,\n",
       "                325.5,\n",
       "                315.0,\n",
       "                302.0,\n",
       "                268.0\n",
       "            ],\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"show\": false,\n",
       "                \"position\": \"top\",\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"label\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"inside\",\n",
       "                    \"color\": \"#fff\",\n",
       "                    \"margin\": 8\n",
       "                },\n",
       "                \"data\": [\n",
       "                    {\n",
       "                        \"name\": \"\\u6700\\u5927\\u503c\",\n",
       "                        \"type\": \"max\"\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u6700\\u5c0f\\u503c\",\n",
       "                        \"type\": \"min\"\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u5e73\\u5747\\u503c\",\n",
       "                        \"type\": \"average\"\n",
       "                    }\n",
       "                ]\n",
       "            },\n",
       "            \"rippleEffect\": {\n",
       "                \"show\": true,\n",
       "                \"brushType\": \"stroke\",\n",
       "                \"scale\": 2.5,\n",
       "                \"period\": 4\n",
       "            }\n",
       "        },\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u4ef7\\u683c\\u6700\\u5c0f\\u503c\",\n",
       "            \"data\": [\n",
       "                87,\n",
       "                81,\n",
       "                81,\n",
       "                67,\n",
       "                67,\n",
       "                67,\n",
       "                67,\n",
       "                67,\n",
       "                60,\n",
       "                60,\n",
       "                60,\n",
       "                47,\n",
       "                47,\n",
       "                27,\n",
       "                0,\n",
       "                0\n",
       "            ],\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"show\": false,\n",
       "                \"position\": \"top\",\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"label\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"inside\",\n",
       "                    \"color\": \"#fff\",\n",
       "                    \"margin\": 8\n",
       "                },\n",
       "                \"data\": [\n",
       "                    {\n",
       "                        \"name\": \"\\u6700\\u5927\\u503c\",\n",
       "                        \"type\": \"max\"\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u6700\\u5c0f\\u503c\",\n",
       "                        \"type\": \"min\"\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u5e73\\u5747\\u503c\",\n",
       "                        \"type\": \"average\"\n",
       "                    }\n",
       "                ]\n",
       "            },\n",
       "            \"rippleEffect\": {\n",
       "                \"show\": true,\n",
       "                \"brushType\": \"stroke\",\n",
       "                \"scale\": 2.5,\n",
       "                \"period\": 4\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\\u4ef7\\u683c\\u5747\\u503c\",\n",
       "                \"\\u4ef7\\u683c\\u4e2d\\u4f4d\\u6570\",\n",
       "                \"\\u4ef7\\u683c\\u6700\\u5c0f\\u503c\"\n",
       "            ],\n",
       "            \"selected\": {\n",
       "                \"\\u4ef7\\u683c\\u5747\\u503c\": true,\n",
       "                \"\\u4ef7\\u683c\\u4e2d\\u4f4d\\u6570\": true,\n",
       "                \"\\u4ef7\\u683c\\u6700\\u5c0f\\u503c\": true\n",
       "            },\n",
       "            \"show\": true\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"axisLabel\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"top\",\n",
       "                \"rotate\": -45,\n",
       "                \"margin\": 8,\n",
       "                \"fontSize\": 12\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            },\n",
       "            \"data\": [\n",
       "                \"\\u6000\\u67d4\\u533a  \",\n",
       "                \"\\u5ef6\\u5e86\\u533a  \",\n",
       "                \"\\u660c\\u5e73\\u533a\",\n",
       "                \"\\u5e73\\u8c37\\u533a  \",\n",
       "                \"\\u5bc6\\u4e91\\u533a  \",\n",
       "                \"\\u95e8\\u5934\\u6c9f\\u533a  \",\n",
       "                \"\\u4e1c\\u57ce\\u533a\",\n",
       "                \"\\u623f\\u5c71\\u533a\",\n",
       "                \"\\u987a\\u4e49\\u533a  \",\n",
       "                \"\\u897f\\u57ce\\u533a\",\n",
       "                \"\\u5927\\u5174\\u533a  \",\n",
       "                \"\\u671d\\u9633\\u533a  \",\n",
       "                \"\\u6d77\\u6dc0\\u533a\",\n",
       "                \"\\u901a\\u5dde\\u533a  \",\n",
       "                \"\\u77f3\\u666f\\u5c71\\u533a\",\n",
       "                \"\\u4e30\\u53f0\\u533a  \"\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"Price-neighbourhood\"\n",
       "        }\n",
       "    ]\n",
       "};\n",
       "                chart_a3e2326e73894acea3d261b005fb87ee.setOption(option_a3e2326e73894acea3d261b005fb87ee);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x16caa994048>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_neighbourhood_price=data.groupby(\"neighbourhood\")[\"price\"].mean().sort_values(ascending=False)\n",
    "df_neighbourhood_price2=data.groupby(\"neighbourhood\")[\"price\"].median().sort_values(ascending=False)\n",
    "df_neighbourhood_price3=data.groupby(\"neighbourhood\")[\"price\"].min().sort_values(ascending=False)\n",
    "bar = (\n",
    "        Bar()\n",
    "        .add_xaxis(df_neighbourhood_price.index.tolist())\n",
    "        .add_yaxis(\"价格均值\", df_neighbourhood_price.values.tolist())\n",
    "        .add_yaxis(\"价格中位数\", df_neighbourhood_price2.values.tolist())\n",
    "        .add_yaxis(\"价格最小值\", df_neighbourhood_price3.values.tolist())\n",
    "        .set_global_opts(title_opts=opts.TitleOpts(title=\"Price-neighbourhood\"),\n",
    "                         xaxis_opts=opts.AxisOpts(name=\"\",axislabel_opts=opts.LabelOpts(rotate=-45,font_size =12)))\n",
    "        .set_series_opts(\n",
    "            label_opts=opts.LabelOpts(is_show=False),\n",
    "            markpoint_opts=opts.MarkPointOpts(\n",
    "                data=[\n",
    "                    opts.MarkPointItem(type_=\"max\", name=\"最大值\"),\n",
    "                    opts.MarkPointItem(type_=\"min\", name=\"最小值\"),\n",
    "                    opts.MarkPointItem(type_=\"average\", name=\"平均值\"),\n",
    "                ]\n",
    "            ),\n",
    "        )\n",
    "    )\n",
    "bar.render_notebook()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "分析：从城区房价分布来看，怀柔区的价格在均值、中位数、最小值等量值上均高于其他城区，而丰台区则价格较低。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.813393Z",
     "start_time": "2019-11-03T13:04:31.841Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"acdb03846d474117bc86e1efde8842e8\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_acdb03846d474117bc86e1efde8842e8 = echarts.init(\n",
       "                    document.getElementById('acdb03846d474117bc86e1efde8842e8'), 'white', {renderer: 'canvas'});\n",
       "                var option_acdb03846d474117bc86e1efde8842e8 = {\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u4ef7\\u683c\\u5747\\u503c\",\n",
       "            \"data\": [\n",
       "                746.4791506930109,\n",
       "                430.681236023582,\n",
       "                299.1928872814949\n",
       "            ],\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"show\": false,\n",
       "                \"position\": \"top\",\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"label\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"inside\",\n",
       "                    \"color\": \"#fff\",\n",
       "                    \"margin\": 8\n",
       "                },\n",
       "                \"data\": [\n",
       "                    {\n",
       "                        \"name\": \"\\u6700\\u5927\\u503c\",\n",
       "                        \"type\": \"max\"\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u6700\\u5c0f\\u503c\",\n",
       "                        \"type\": \"min\"\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u5e73\\u5747\\u503c\",\n",
       "                        \"type\": \"average\"\n",
       "                    }\n",
       "                ]\n",
       "            },\n",
       "            \"rippleEffect\": {\n",
       "                \"show\": true,\n",
       "                \"brushType\": \"stroke\",\n",
       "                \"scale\": 2.5,\n",
       "                \"period\": 4\n",
       "            }\n",
       "        },\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u4ef7\\u683c\\u4e2d\\u4f4d\\u6570\",\n",
       "            \"data\": [\n",
       "                470,\n",
       "                248,\n",
       "                107\n",
       "            ],\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"show\": false,\n",
       "                \"position\": \"top\",\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"label\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"inside\",\n",
       "                    \"color\": \"#fff\",\n",
       "                    \"margin\": 8\n",
       "                },\n",
       "                \"data\": [\n",
       "                    {\n",
       "                        \"name\": \"\\u6700\\u5927\\u503c\",\n",
       "                        \"type\": \"max\"\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u6700\\u5c0f\\u503c\",\n",
       "                        \"type\": \"min\"\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u5e73\\u5747\\u503c\",\n",
       "                        \"type\": \"average\"\n",
       "                    }\n",
       "                ]\n",
       "            },\n",
       "            \"rippleEffect\": {\n",
       "                \"show\": true,\n",
       "                \"brushType\": \"stroke\",\n",
       "                \"scale\": 2.5,\n",
       "                \"period\": 4\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\\u4ef7\\u683c\\u5747\\u503c\",\n",
       "                \"\\u4ef7\\u683c\\u4e2d\\u4f4d\\u6570\"\n",
       "            ],\n",
       "            \"selected\": {\n",
       "                \"\\u4ef7\\u683c\\u5747\\u503c\": true,\n",
       "                \"\\u4ef7\\u683c\\u4e2d\\u4f4d\\u6570\": true\n",
       "            },\n",
       "            \"show\": true\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"axisLabel\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"top\",\n",
       "                \"rotate\": 0,\n",
       "                \"margin\": 8,\n",
       "                \"fontSize\": 12\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            },\n",
       "            \"data\": [\n",
       "                \"Entire home/apt\",\n",
       "                \"Private room\",\n",
       "                \"Shared room\"\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"Price-roomtype\"\n",
       "        }\n",
       "    ]\n",
       "};\n",
       "                chart_acdb03846d474117bc86e1efde8842e8.setOption(option_acdb03846d474117bc86e1efde8842e8);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x16caa989148>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_roomtpye_price=data.groupby(\"room_type\")[\"price\"].mean().sort_values(ascending=False)\n",
    "df_roomtpye_price2=data.groupby(\"room_type\")[\"price\"].median().sort_values(ascending=False)\n",
    "df_roomtpye_price3=data.groupby(\"room_type\")[\"price\"].min().sort_values(ascending=False)\n",
    "bar = (\n",
    "        Bar()\n",
    "        .add_xaxis(df_roomtpye_price.index.tolist())\n",
    "        .add_yaxis(\"价格均值\", df_roomtpye_price.values.tolist())\n",
    "        .add_yaxis(\"价格中位数\", df_roomtpye_price2.values.tolist())\n",
    "#         .add_yaxis(\"价格最小值\", df_roomtpye_price3.values.tolist())\n",
    "        .set_global_opts(title_opts=opts.TitleOpts(title=\"Price-roomtype\"),\n",
    "                         xaxis_opts=opts.AxisOpts(name=\"\",axislabel_opts=opts.LabelOpts(rotate=0,font_size =12)))\n",
    "        .set_series_opts(\n",
    "            label_opts=opts.LabelOpts(is_show=False),\n",
    "            markpoint_opts=opts.MarkPointOpts(\n",
    "                data=[\n",
    "                    opts.MarkPointItem(type_=\"max\", name=\"最大值\"),\n",
    "                    opts.MarkPointItem(type_=\"min\", name=\"最小值\"),\n",
    "                    opts.MarkPointItem(type_=\"average\", name=\"平均值\"),\n",
    "                ]\n",
    "            ),\n",
    "        )\n",
    "    )\n",
    "bar.render_notebook()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.829024Z",
     "start_time": "2019-11-03T13:04:31.845Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count      3.000000\n",
       "mean     492.117758\n",
       "std      229.884939\n",
       "min      299.192887\n",
       "25%      364.937062\n",
       "50%      430.681236\n",
       "75%      588.580193\n",
       "max      746.479151\n",
       "Name: price, dtype: float64"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_roomtpye_price.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "分析：整租、独立房间出租、房间合租的价格一次递减，且差价在40%、30%，整租的利润空间最大。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# #时间序列分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.829024Z",
     "start_time": "2019-11-03T13:04:31.849Z"
    }
   },
   "outputs": [],
   "source": [
    "data[\"last_review\"]=pd.to_datetime(data[\"last_review\"],format=\"%Y-%m-%d\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.829024Z",
     "start_time": "2019-11-03T13:04:31.853Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>name</th>\n",
       "      <th>host_id</th>\n",
       "      <th>host_name</th>\n",
       "      <th>neighbourhood</th>\n",
       "      <th>latitude</th>\n",
       "      <th>longitude</th>\n",
       "      <th>room_type</th>\n",
       "      <th>price</th>\n",
       "      <th>minimum_nights</th>\n",
       "      <th>number_of_reviews</th>\n",
       "      <th>last_review</th>\n",
       "      <th>reviews_per_month</th>\n",
       "      <th>calculated_host_listings_count</th>\n",
       "      <th>availability_365</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>44054</td>\n",
       "      <td>Modern and Comfortable Living in CBD</td>\n",
       "      <td>192875</td>\n",
       "      <td>East Apartments</td>\n",
       "      <td>朝阳区</td>\n",
       "      <td>39.89503</td>\n",
       "      <td>116.45163</td>\n",
       "      <td>Entire home/apt</td>\n",
       "      <td>792</td>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>2019-03-04</td>\n",
       "      <td>0.85</td>\n",
       "      <td>9</td>\n",
       "      <td>341</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>100213</td>\n",
       "      <td>The Great Wall Box Deluxe Suite A团园长城小院东院套房</td>\n",
       "      <td>527062</td>\n",
       "      <td>Joe</td>\n",
       "      <td>密云区</td>\n",
       "      <td>40.68434</td>\n",
       "      <td>117.17231</td>\n",
       "      <td>Private room</td>\n",
       "      <td>1201</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2017-10-08</td>\n",
       "      <td>0.10</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>128496</td>\n",
       "      <td>Heart of Beijing: House with View 2</td>\n",
       "      <td>467520</td>\n",
       "      <td>Cindy</td>\n",
       "      <td>东城区</td>\n",
       "      <td>39.93213</td>\n",
       "      <td>116.42200</td>\n",
       "      <td>Entire home/apt</td>\n",
       "      <td>389</td>\n",
       "      <td>3</td>\n",
       "      <td>259</td>\n",
       "      <td>2019-02-05</td>\n",
       "      <td>2.70</td>\n",
       "      <td>1</td>\n",
       "      <td>93</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>161902</td>\n",
       "      <td>cozy studio in center of Beijing</td>\n",
       "      <td>707535</td>\n",
       "      <td>Robert</td>\n",
       "      <td>东城区</td>\n",
       "      <td>39.93357</td>\n",
       "      <td>116.43577</td>\n",
       "      <td>Entire home/apt</td>\n",
       "      <td>376</td>\n",
       "      <td>1</td>\n",
       "      <td>26</td>\n",
       "      <td>2016-12-03</td>\n",
       "      <td>0.28</td>\n",
       "      <td>5</td>\n",
       "      <td>290</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>162144</td>\n",
       "      <td>nice studio near subway, sleep 4</td>\n",
       "      <td>707535</td>\n",
       "      <td>Robert</td>\n",
       "      <td>朝阳区</td>\n",
       "      <td>39.93668</td>\n",
       "      <td>116.43798</td>\n",
       "      <td>Entire home/apt</td>\n",
       "      <td>537</td>\n",
       "      <td>1</td>\n",
       "      <td>37</td>\n",
       "      <td>2018-08-01</td>\n",
       "      <td>0.40</td>\n",
       "      <td>5</td>\n",
       "      <td>352</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       id                                         name  host_id  \\\n",
       "0   44054         Modern and Comfortable Living in CBD   192875   \n",
       "1  100213  The Great Wall Box Deluxe Suite A团园长城小院东院套房   527062   \n",
       "2  128496          Heart of Beijing: House with View 2   467520   \n",
       "3  161902             cozy studio in center of Beijing   707535   \n",
       "4  162144            nice studio near subway, sleep 4    707535   \n",
       "\n",
       "         host_name neighbourhood  latitude  longitude        room_type  price  \\\n",
       "0  East Apartments         朝阳区    39.89503  116.45163  Entire home/apt    792   \n",
       "1              Joe         密云区    40.68434  117.17231     Private room   1201   \n",
       "2            Cindy           东城区  39.93213  116.42200  Entire home/apt    389   \n",
       "3           Robert           东城区  39.93357  116.43577  Entire home/apt    376   \n",
       "4           Robert         朝阳区    39.93668  116.43798  Entire home/apt    537   \n",
       "\n",
       "   minimum_nights  number_of_reviews last_review  reviews_per_month  \\\n",
       "0               1                 89  2019-03-04               0.85   \n",
       "1               1                  2  2017-10-08               0.10   \n",
       "2               3                259  2019-02-05               2.70   \n",
       "3               1                 26  2016-12-03               0.28   \n",
       "4               1                 37  2018-08-01               0.40   \n",
       "\n",
       "   calculated_host_listings_count  availability_365  \n",
       "0                               9               341  \n",
       "1                               4                 0  \n",
       "2                               1                93  \n",
       "3                               5               290  \n",
       "4                               5               352  "
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.844640Z",
     "start_time": "2019-11-03T13:04:31.857Z"
    }
   },
   "outputs": [],
   "source": [
    "data[\"year\"]=data[\"last_review\"].apply(lambda x:x.year)\n",
    "data[\"month\"]=data[\"last_review\"].apply(lambda x:x.month)\n",
    "data[\"day\"]=data[\"last_review\"].apply(lambda x:x.day)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.844640Z",
     "start_time": "2019-11-03T13:04:31.862Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>name</th>\n",
       "      <th>host_id</th>\n",
       "      <th>host_name</th>\n",
       "      <th>neighbourhood</th>\n",
       "      <th>latitude</th>\n",
       "      <th>longitude</th>\n",
       "      <th>room_type</th>\n",
       "      <th>price</th>\n",
       "      <th>minimum_nights</th>\n",
       "      <th>number_of_reviews</th>\n",
       "      <th>last_review</th>\n",
       "      <th>reviews_per_month</th>\n",
       "      <th>calculated_host_listings_count</th>\n",
       "      <th>availability_365</th>\n",
       "      <th>year</th>\n",
       "      <th>month</th>\n",
       "      <th>day</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>44054</td>\n",
       "      <td>Modern and Comfortable Living in CBD</td>\n",
       "      <td>192875</td>\n",
       "      <td>East Apartments</td>\n",
       "      <td>朝阳区</td>\n",
       "      <td>39.89503</td>\n",
       "      <td>116.45163</td>\n",
       "      <td>Entire home/apt</td>\n",
       "      <td>792</td>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>2019-03-04</td>\n",
       "      <td>0.85</td>\n",
       "      <td>9</td>\n",
       "      <td>341</td>\n",
       "      <td>2019</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>100213</td>\n",
       "      <td>The Great Wall Box Deluxe Suite A团园长城小院东院套房</td>\n",
       "      <td>527062</td>\n",
       "      <td>Joe</td>\n",
       "      <td>密云区</td>\n",
       "      <td>40.68434</td>\n",
       "      <td>117.17231</td>\n",
       "      <td>Private room</td>\n",
       "      <td>1201</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2017-10-08</td>\n",
       "      <td>0.10</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>2017</td>\n",
       "      <td>10</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>128496</td>\n",
       "      <td>Heart of Beijing: House with View 2</td>\n",
       "      <td>467520</td>\n",
       "      <td>Cindy</td>\n",
       "      <td>东城区</td>\n",
       "      <td>39.93213</td>\n",
       "      <td>116.42200</td>\n",
       "      <td>Entire home/apt</td>\n",
       "      <td>389</td>\n",
       "      <td>3</td>\n",
       "      <td>259</td>\n",
       "      <td>2019-02-05</td>\n",
       "      <td>2.70</td>\n",
       "      <td>1</td>\n",
       "      <td>93</td>\n",
       "      <td>2019</td>\n",
       "      <td>2</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>161902</td>\n",
       "      <td>cozy studio in center of Beijing</td>\n",
       "      <td>707535</td>\n",
       "      <td>Robert</td>\n",
       "      <td>东城区</td>\n",
       "      <td>39.93357</td>\n",
       "      <td>116.43577</td>\n",
       "      <td>Entire home/apt</td>\n",
       "      <td>376</td>\n",
       "      <td>1</td>\n",
       "      <td>26</td>\n",
       "      <td>2016-12-03</td>\n",
       "      <td>0.28</td>\n",
       "      <td>5</td>\n",
       "      <td>290</td>\n",
       "      <td>2016</td>\n",
       "      <td>12</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>162144</td>\n",
       "      <td>nice studio near subway, sleep 4</td>\n",
       "      <td>707535</td>\n",
       "      <td>Robert</td>\n",
       "      <td>朝阳区</td>\n",
       "      <td>39.93668</td>\n",
       "      <td>116.43798</td>\n",
       "      <td>Entire home/apt</td>\n",
       "      <td>537</td>\n",
       "      <td>1</td>\n",
       "      <td>37</td>\n",
       "      <td>2018-08-01</td>\n",
       "      <td>0.40</td>\n",
       "      <td>5</td>\n",
       "      <td>352</td>\n",
       "      <td>2018</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       id                                         name  host_id  \\\n",
       "0   44054         Modern and Comfortable Living in CBD   192875   \n",
       "1  100213  The Great Wall Box Deluxe Suite A团园长城小院东院套房   527062   \n",
       "2  128496          Heart of Beijing: House with View 2   467520   \n",
       "3  161902             cozy studio in center of Beijing   707535   \n",
       "4  162144            nice studio near subway, sleep 4    707535   \n",
       "\n",
       "         host_name neighbourhood  latitude  longitude        room_type  price  \\\n",
       "0  East Apartments         朝阳区    39.89503  116.45163  Entire home/apt    792   \n",
       "1              Joe         密云区    40.68434  117.17231     Private room   1201   \n",
       "2            Cindy           东城区  39.93213  116.42200  Entire home/apt    389   \n",
       "3           Robert           东城区  39.93357  116.43577  Entire home/apt    376   \n",
       "4           Robert         朝阳区    39.93668  116.43798  Entire home/apt    537   \n",
       "\n",
       "   minimum_nights  number_of_reviews last_review  reviews_per_month  \\\n",
       "0               1                 89  2019-03-04               0.85   \n",
       "1               1                  2  2017-10-08               0.10   \n",
       "2               3                259  2019-02-05               2.70   \n",
       "3               1                 26  2016-12-03               0.28   \n",
       "4               1                 37  2018-08-01               0.40   \n",
       "\n",
       "   calculated_host_listings_count  availability_365  year  month  day  \n",
       "0                               9               341  2019      3    4  \n",
       "1                               4                 0  2017     10    8  \n",
       "2                               1                93  2019      2    5  \n",
       "3                               5               290  2016     12    3  \n",
       "4                               5               352  2018      8    1  "
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.844640Z",
     "start_time": "2019-11-03T13:04:31.865Z"
    }
   },
   "outputs": [],
   "source": [
    "df_year=data[\"year\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.844640Z",
     "start_time": "2019-11-03T13:04:31.868Z"
    }
   },
   "outputs": [],
   "source": [
    "df_month=data[\"month\"].value_counts().to_frame().reset_index().sort_values(by=\"index\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.860264Z",
     "start_time": "2019-11-03T13:04:31.872Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x16caa99a108>]"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(df_year.index.tolist(),df_year.values.tolist())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:04:32.860264Z",
     "start_time": "2019-11-03T13:04:31.875Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x16caac2d9c8>]"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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2+r30tqSk5Opq6vDbDaj0+m4+eabI7ZfiYm7pCaym266KfT96dOn2bt3L//+7/+u4Ygiq7a2lkcffZRz585pPZSIOnPmDEajkQcffJBz587xne98hw0bNmg9rIgxm82sX7+esrIyTCYTS5Ys4Rvf+IbWw5qSrVu3jvp5rFa/drt9uocVEZfWlp+fT35+PgBdXV38+te/5umnn47Ie8mRwjT59NNPuf/++3nssce49tprtR5ORPzmN78hLy+PZcuWaT2UiPP5fLzzzjv8/Oc/55VXXuHDDz/ktdde03pYEfPJJ5/w29/+ljfeeIO33noLvV7Piy++qPWwImqqrX7jgd1u58c//jF33303S5cujchrSihMg2PHjvGTn/yEv//7v+dHP/qR1sOJmObmZg4dOsSKFSv4l3/5F/bv38/Pf/5zrYcVEbNnz2bZsmVkZWWRmprKD37wAz788EOthxUxb7/9NsuWLSM7O5vk5GSqqqp47733tB5WRCV6q9+TJ09y77338qMf/YiHHnooYq8rp4+i7Ny5czz00ENs37494T5Rv/TSS6HvX331Vd577z2efPJJDUcUOd/97nd5/PHH6e3tJT09nbfeeovvf//7Wg8rYhYsWMA//uM/0t/fj8lkYv/+/dx6661aDyuiFi1axKlTpzhz5gxz585lz5493H333VoPKyJcLhc//elP2bBhAz/84Q8j+toSClH24osvMjQ0xDPPPBPadu+997Jq1SoNRyWuZtGiRTzwwAOsXr0aj8fD7bffnjA7FIA77riDjz/+mKqqKoxGI7feeitr167VelgRlZKSwjPPPMPDDz/M0NAQxcXFlJaWaj2siNi9ezcdHR289NJLoQ9n3/ve91i/fv2UX1s6rwkhhAiROQUhhBAhEgpCCCFCJBSEEEKESCgIIYQIkVAQQggRIqEghBAiREJBCCFEiISCEEKIkP8fUQOu2Fi5wpYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(df_month[\"index\"],df_month[\"month\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "分析：短租的信息从2016年开始增长，18-19年猛增；而从月份来看3-4月份是旺季，而5月之后属于淡季。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 评论文本分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:05:17.253669Z",
     "start_time": "2019-11-03T13:05:16.316239Z"
    }
   },
   "outputs": [],
   "source": [
    "df=pd.read_csv(\"reviews_detail.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 202099 entries, 0 to 202098\n",
      "Data columns (total 6 columns):\n",
      "listing_id       202099 non-null int64\n",
      "id               202099 non-null int64\n",
      "date             202099 non-null object\n",
      "reviewer_id      202099 non-null int64\n",
      "reviewer_name    202093 non-null object\n",
      "comments         201983 non-null object\n",
      "dtypes: int64(3), object(3)\n",
      "memory usage: 9.3+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "df[\"Chinese\"]=df[\"comments\"].apply(lambda x:re.sub(\"[A-Za-z0-9\\!\\%\\?()./[\\]\\- \t:;,\\。 ' ...r'\\n\\r\\n\\r\\n' \t]\", \"\",str(x))) #滤除非汉字部分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-11-03T13:19:09.603242Z",
     "start_time": "2019-11-03T13:19:09.446996Z"
    }
   },
   "outputs": [],
   "source": [
    " df[\"English\"]=df[\"comments\"].apply(lambda x:''.join(re.findall(r'[  A-Za-z ]', str(x))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>listing_id</th>\n",
       "      <th>id</th>\n",
       "      <th>date</th>\n",
       "      <th>reviewer_id</th>\n",
       "      <th>reviewer_name</th>\n",
       "      <th>comments</th>\n",
       "      <th>Chinese</th>\n",
       "      <th>English</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>202094</td>\n",
       "      <td>33889408</td>\n",
       "      <td>438178936</td>\n",
       "      <td>2019-04-16</td>\n",
       "      <td>255996319</td>\n",
       "      <td>小倩</td>\n",
       "      <td>很不错的,去之前提供的位置信息特别详细,房东有心了,位置很便利,设施也很齐全,非常好的一次住...</td>\n",
       "      <td>很不错的去之前提供的位置信息特别详细房东有心了位置很便利设施也很齐全非常好的一次住宿体验~</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>202095</td>\n",
       "      <td>33890728</td>\n",
       "      <td>438182720</td>\n",
       "      <td>2019-04-16</td>\n",
       "      <td>255995373</td>\n",
       "      <td>志辉</td>\n",
       "      <td>非常棒的房子,住的很开心｡ 地址位置很方便, 房间布置和装修都很奈斯,沙发床特别舒服哈哈</td>\n",
       "      <td>非常棒的房子住的很开心｡地址位置很方便房间布置和装修都很奈斯沙发床特别舒服哈哈</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>202096</td>\n",
       "      <td>33891613</td>\n",
       "      <td>438182693</td>\n",
       "      <td>2019-04-16</td>\n",
       "      <td>255994654</td>\n",
       "      <td>天佑</td>\n",
       "      <td>房间布置明亮温暖而别有风格,指引周到而迅速,房间内设施齐全､空间宽敞!</td>\n",
       "      <td>房间布置明亮温暖而别有风格指引周到而迅速房间内设施齐全､空间宽敞</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>202097</td>\n",
       "      <td>33892088</td>\n",
       "      <td>438119657</td>\n",
       "      <td>2019-04-16</td>\n",
       "      <td>255993753</td>\n",
       "      <td>志强</td>\n",
       "      <td>各方面这个价位性价比是非常之高了,房东人也很好,交通便利,我个人是很满意的,有机会还会来｡</td>\n",
       "      <td>各方面这个价位性价比是非常之高了房东人也很好交通便利我个人是很满意的有机会还会来｡</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>202098</td>\n",
       "      <td>33925874</td>\n",
       "      <td>438572523</td>\n",
       "      <td>2019-04-17</td>\n",
       "      <td>256375057</td>\n",
       "      <td>玲</td>\n",
       "      <td>The host canceled this reservation 13 days bef...</td>\n",
       "      <td></td>\n",
       "      <td>The host canceled this reservation  days befor...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        listing_id         id        date  reviewer_id reviewer_name  \\\n",
       "202094    33889408  438178936  2019-04-16    255996319            小倩   \n",
       "202095    33890728  438182720  2019-04-16    255995373            志辉   \n",
       "202096    33891613  438182693  2019-04-16    255994654            天佑   \n",
       "202097    33892088  438119657  2019-04-16    255993753            志强   \n",
       "202098    33925874  438572523  2019-04-17    256375057             玲   \n",
       "\n",
       "                                                 comments  \\\n",
       "202094  很不错的,去之前提供的位置信息特别详细,房东有心了,位置很便利,设施也很齐全,非常好的一次住...   \n",
       "202095       非常棒的房子,住的很开心｡ 地址位置很方便, 房间布置和装修都很奈斯,沙发床特别舒服哈哈   \n",
       "202096                房间布置明亮温暖而别有风格,指引周到而迅速,房间内设施齐全､空间宽敞!   \n",
       "202097      各方面这个价位性价比是非常之高了,房东人也很好,交通便利,我个人是很满意的,有机会还会来｡   \n",
       "202098  The host canceled this reservation 13 days bef...   \n",
       "\n",
       "                                              Chinese  \\\n",
       "202094  很不错的去之前提供的位置信息特别详细房东有心了位置很便利设施也很齐全非常好的一次住宿体验~   \n",
       "202095        非常棒的房子住的很开心｡地址位置很方便房间布置和装修都很奈斯沙发床特别舒服哈哈   \n",
       "202096               房间布置明亮温暖而别有风格指引周到而迅速房间内设施齐全､空间宽敞   \n",
       "202097      各方面这个价位性价比是非常之高了房东人也很好交通便利我个人是很满意的有机会还会来｡   \n",
       "202098                                                  \n",
       "\n",
       "                                                  English  \n",
       "202094                                                     \n",
       "202095                                                     \n",
       "202096                                                     \n",
       "202097                                                     \n",
       "202098  The host canceled this reservation  days befor...  "
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "df[\"Chinese\"].to_csv(\"Chinese_comments.csv\",index=False,header=False)\n",
    "df[\"English\"].to_csv(\"English_comments.csv\",index=False,header=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "import jieba\n",
    "excludes = {\"我们\",\"特别\",\"可以\",\"入住\",\"非常\",\"房东\",\"房间\",\"真的\",\"但是\",\"还有\",\"没有\",\"问题\",\"一个\"}#{\"将军\",\"却说\",\"丞相\"}\n",
    "txt = open(\"Chinese_comments.csv\", \"r\", encoding='utf-8').read()\n",
    "words  = jieba.lcut(txt)\n",
    "counts = {}\n",
    "for word in words:\n",
    "    if len(word) == 1:  #排除单个字符的分词结果\n",
    "        continue\n",
    "    else:\n",
    "        counts[word] = counts.get(word,0) + 1\n",
    "for word in excludes:\n",
    "    del(counts[word])\n",
    "items = list(counts.items())\n",
    "items.sort(key=lambda x:x[1], reverse=True) \n",
    "# for i in range(15):\n",
    "#     word, count = items[i]\n",
    "#     print (\"{0:<10}{1:>5}\".format(word, count))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min', 'echarts-wordcloud':'https://assets.pyecharts.org/assets/echarts-wordcloud.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"895a57abe8044001a09125a7094d735a\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts', 'echarts-wordcloud'], function(echarts) {\n",
       "                var chart_895a57abe8044001a09125a7094d735a = echarts.init(\n",
       "                    document.getElementById('895a57abe8044001a09125a7094d735a'), 'white', {renderer: 'canvas'});\n",
       "                var option_895a57abe8044001a09125a7094d735a = {\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"wordCloud\",\n",
       "            \"shape\": \"diamond\",\n",
       "            \"rotationRange\": [\n",
       "                0,\n",
       "                0\n",
       "            ],\n",
       "            \"rotationStep\": 45,\n",
       "            \"girdSize\": 20,\n",
       "            \"sizeRange\": [\n",
       "                20,\n",
       "                100\n",
       "            ],\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"name\": \"\\u65b9\\u4fbf\",\n",
       "                    \"value\": 52044,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(91,44,1)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5e72\\u51c0\",\n",
       "                    \"value\": 43828,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(135,128,117)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u623f\\u5b50\",\n",
       "                    \"value\": 43115,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(4,118,21)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e0d\\u9519\",\n",
       "                    \"value\": 29395,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(4,57,68)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4f4d\\u7f6e\",\n",
       "                    \"value\": 29074,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(1,115,38)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5317\\u4eac\",\n",
       "                    \"value\": 26043,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(9,97,120)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4f53\\u9a8c\",\n",
       "                    \"value\": 24307,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(160,37,3)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u70ed\\u60c5\",\n",
       "                    \"value\": 23240,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(31,15,32)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5c31\\u662f\",\n",
       "                    \"value\": 21275,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(46,137,67)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5730\\u94c1\\u7ad9\",\n",
       "                    \"value\": 19674,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(137,17,155)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8212\\u670d\",\n",
       "                    \"value\": 19643,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(134,93,102)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4ea4\\u901a\",\n",
       "                    \"value\": 19582,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(91,15,12)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8d85\\u7ea7\",\n",
       "                    \"value\": 16882,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(48,52,131)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u611f\\u89c9\",\n",
       "                    \"value\": 16580,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(159,21,32)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e0b\\u6b21\",\n",
       "                    \"value\": 16038,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(35,2,47)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5730\\u7406\\u4f4d\\u7f6e\",\n",
       "                    \"value\": 16023,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(125,15,85)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6e29\\u99a8\",\n",
       "                    \"value\": 15324,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(29,56,66)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5f88\\u591a\",\n",
       "                    \"value\": 15237,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(25,70,107)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u63a8\\u8350\",\n",
       "                    \"value\": 15190,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(84,59,30)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4fbf\\u5229\",\n",
       "                    \"value\": 14691,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(121,4,127)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5c0f\\u533a\",\n",
       "                    \"value\": 14685,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(14,93,148)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6bd4\\u8f83\",\n",
       "                    \"value\": 14550,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(150,48,55)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6574\\u6d01\",\n",
       "                    \"value\": 14395,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(101,91,11)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u559c\\u6b22\",\n",
       "                    \"value\": 14234,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(53,138,35)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8bbe\\u65bd\",\n",
       "                    \"value\": 14205,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(66,151,36)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u9f50\\u5168\",\n",
       "                    \"value\": 13452,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(137,122,50)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5f88\\u68d2\",\n",
       "                    \"value\": 13231,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(55,145,100)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6027\\u4ef7\\u6bd4\",\n",
       "                    \"value\": 13087,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(75,34,136)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8212\\u9002\",\n",
       "                    \"value\": 12768,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(29,71,8)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u88c5\\u4fee\",\n",
       "                    \"value\": 12662,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(128,137,104)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5730\\u94c1\",\n",
       "                    \"value\": 12428,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(104,139,44)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u4e00\\u6b21\",\n",
       "                    \"value\": 12018,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(57,0,18)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5b89\\u9759\",\n",
       "                    \"value\": 11877,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(109,151,27)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u9644\\u8fd1\",\n",
       "                    \"value\": 11862,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(9,40,118)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8fd8\\u662f\",\n",
       "                    \"value\": 11292,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(96,113,69)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5c0f\\u59d0\\u59d0\",\n",
       "                    \"value\": 11260,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(23,66,108)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8fd9\\u91cc\",\n",
       "                    \"value\": 11217,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(2,128,147)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u623f\\u4e3b\",\n",
       "                    \"value\": 10838,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(114,108,110)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5730\\u65b9\",\n",
       "                    \"value\": 10416,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(23,37,32)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6ee1\\u610f\",\n",
       "                    \"value\": 10294,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(154,129,142)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u665a\\u4e0a\",\n",
       "                    \"value\": 10107,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(8,131,32)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u8d34\\u5fc3\",\n",
       "                    \"value\": 9758,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(122,38,54)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6c11\\u5bbf\",\n",
       "                    \"value\": 9740,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(21,8,32)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u6709\\u70b9\",\n",
       "                    \"value\": 9640,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(119,154,154)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u73af\\u5883\",\n",
       "                    \"value\": 9469,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(64,151,147)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u56de\\u590d\",\n",
       "                    \"value\": 9361,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(121,129,29)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u800c\\u4e14\",\n",
       "                    \"value\": 9320,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(16,133,130)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u53ca\\u65f6\",\n",
       "                    \"value\": 8982,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(15,72,13)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u59d0\\u59d0\",\n",
       "                    \"value\": 8814,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(108,17,129)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5f88\\u8fd1\",\n",
       "                    \"value\": 8522,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(10,138,140)\"\n",
       "                        }\n",
       "                    }\n",
       "                }\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [],\n",
       "            \"selected\": {},\n",
       "            \"show\": true\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"comments WordCloud\"\n",
       "        }\n",
       "    ]\n",
       "};\n",
       "                chart_895a57abe8044001a09125a7094d735a.setOption(option_895a57abe8044001a09125a7094d735a);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x16ca9945a08>"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pyecharts import options as opts\n",
    "from pyecharts.charts import Page, WordCloud\n",
    "from pyecharts.globals import SymbolType\n",
    "word = WordCloud()\n",
    "word.add('',items[:50],word_size_range=[20, 100],shape=SymbolType.DIAMOND)\n",
    "word.set_global_opts(title_opts=opts.TitleOpts(title=\"comments WordCloud\"))\n",
    "word.render_notebook()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "分析：租客关注点偏向一下四项\n",
    "房主：'房东','热情'\n",
    "房子：'房间','设施','干净','整洁','装修'\n",
    "位置：'地理位置','附近','地铁站','交通'\n",
    "价格：'性价比'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# #特征相关性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data=data[[\"id\",\"host_id\",\"neighbourhood\", \"room_type\", \"price\" ,\"minimum_nights\", \"number_of_reviews\" ,\"last_review\", \"reviews_per_month\" ,\"availability_365\"]]\n",
    "colormap = plt.cm.RdBu\n",
    "fig3,ax1=plt.subplots(1,1)\n",
    "plt.title('Pearson Correlation of Features', y=1.05, size=14)\n",
    "sns.heatmap(data.corr(),linewidths=0.1,vmax=1.0, square=True,\n",
    "            cmap=colormap, linecolor='white', annot=True,annot_kws={'size':8,'color':'black'},ax=ax1)\n",
    "ax1.tick_params(axis='y',labelsize=12)\n",
    "ax1.tick_params(axis='x',labelsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "notify_time": "5"
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
